| f | module Cisco-IOS-XR-um-l2vpn-cfg { | f | module Cisco-IOS-XR-um-l2vpn-cfg { |
| namespace "http://cisco.com/ns/yang/Cisco-IOS-XR-um-l2vpn-cfg"; | | namespace "http://cisco.com/ns/yang/Cisco-IOS-XR-um-l2vpn-cfg"; |
| prefix um-l2vpn-cfg; | | prefix um-l2vpn-cfg; |
| | | |
| import Cisco-IOS-XR-types { | | import Cisco-IOS-XR-types { |
| prefix xr; | | prefix xr; |
| } | | } |
| import ietf-inet-types { | | import ietf-inet-types { |
| prefix inet; | | prefix inet; |
| } | | } |
| import ietf-yang-types { | | import ietf-yang-types { |
| prefix yang; | | prefix yang; |
| } | | } |
| import Cisco-IOS-XR-um-interface-cfg { | | import Cisco-IOS-XR-um-interface-cfg { |
| prefix a1; | | prefix a1; |
| } | | } |
| import Cisco-IOS-XR-um-snmp-server-cfg { | | import Cisco-IOS-XR-um-snmp-server-cfg { |
| prefix a2; | | prefix a2; |
| } | | } |
| import Cisco-IOS-XR-um-vrf-cfg { | | import Cisco-IOS-XR-um-vrf-cfg { |
| prefix a3; | | prefix a3; |
| } | | } |
| import tailf-common { | | import tailf-common { |
| prefix tailf; | | prefix tailf; |
| } | | } |
| import cisco-semver { | | import cisco-semver { |
| prefix semver; | | prefix semver; |
| } | | } |
| | | |
| organization | | organization |
| "Cisco Systems, Inc."; | | "Cisco Systems, Inc."; |
| contact | | contact |
| "Cisco Systems, Inc. | | "Cisco Systems, Inc. |
| Customer Service | | Customer Service |
| | | |
| Postal: 170 West Tasman Drive | | Postal: 170 West Tasman Drive |
| San Jose, CA 95134 | | San Jose, CA 95134 |
| | | |
| Tel: +1 800 553-NETS | | Tel: +1 800 553-NETS |
| | | |
| E-mail: cs-yang@cisco.com"; | | E-mail: cs-yang@cisco.com"; |
| description | | description |
| "This module contains a collection of YANG definitions | | "This module contains a collection of YANG definitions |
| for Cisco IOS-XR l2vpn package configuration. | | for Cisco IOS-XR l2vpn package configuration. |
| | | |
| This YANG module augments the | | This YANG module augments the |
| modules with configuration data. | | modules with configuration data. |
| | | |
| n | Copyright (c) 2021-2023 by Cisco Systems, Inc. | n | Copyright (c) 2021-2022 by Cisco Systems, Inc. |
| All rights reserved."; | | All rights reserved."; |
| | | |
| n | revision 2022-12-14 { | n | |
| description | | |
| "Added wide-function config support for per EVI and global locator | | |
| 2022-08-15 | | |
| Added support for uSID WLIB allocation space | | |
| 2022-08-03 | | |
| Changed esi nodes bytes01, bytes23, bytes45, bytes67, bytes89 under | | |
| evpn/virtual/ethernet-segment/identifier/ to 9-octet string | | |
| 2022-07-11 | | |
| Added missing description statement to nodes | | |
| 2022-07-06 | | |
| Changed esi nodes bytes01, bytes23, bytes45, bytes67, bytes89 under | | |
| ethernet-segment/identifier to 9-octet string | | |
| 2022-04-14 | | |
| Removed mmrp-flood-optimization and unknown-unicast non-configurable nodes | | |
| 2022-03-10 | | |
| Removed some non-configurable nodes from the L2VPN/EVPN Yang UM | | |
| 2022-03-08 | | |
| Added list interface under vlan-switch bridge-domain | | |
| 2021-11-17 | | |
| Added container segment-routing-srv6-evis under bridge-domains"; | | |
| semver:module-version "3.0.0"; | | |
| } | | |
| revision 2021-10-11 { | | revision 2021-10-11 { |
| description | | description |
| "Re-adjusted mac node under vlan-switch hierarchy | | "Re-adjusted mac node under vlan-switch hierarchy |
| 2021-07-29 | | 2021-07-29 |
| n | Re-adjusted load-balancing and ipv4 under encapsulation/mpls rather than redundancy | n | Re-adjusted load-balancing and ipv4 under encapsulation/mpls rather than redundancy |
| 2021-07-22 | | 2021-07-22 |
| n | Added presence statement for container group under container | n | Added presence statement for container group under container |
| split-horizon | | split-horizon |
| 2021-07-21 | | 2021-07-21 |
| n | aging, learning, withdraw, secure, port-down, static-addresses and access-pw nodes are moved up 1 hierarchy | n | aging, learning, withdraw, secure, port-down, static-addresses and access-pw nodes are moved up 1 hierarchy |
| under mac rather than aging | | under mac rather than aging |
| 2021-07-15 | | 2021-07-15 |
| n | Re-adjusted dhcp,igmp,mac,mld,mpls,pw-class,split-horizon,static-mac-address and | n | Re-adjusted dhcp,igmp,mac,mld,mpls,pw-class,split-horizon,static-mac-address and |
| storm-control container hierarchy instead of under flooding | | storm-control container hierarchy instead of under flooding |
| 2021-06-30 | | 2021-06-30 |
| n | Replaced container disable with disable-deprecated; | n | Replaced container disable with disable-deprecated; |
| Added a new container enforce-mtu-match"; | | Added a new container enforce-mtu-match"; |
| semver:module-version "2.0.0"; | | semver:module-version "2.0.0"; |
| } | | } |
| revision 2021-05-10 { | | revision 2021-05-10 { |
| description | | description |
| "Initial release"; | | "Initial release"; |
| semver:module-version "1.0.0"; | | semver:module-version "1.0.0"; |
| } | | } |
| | | |
| feature l2vpn_evpn_not_nve_intf { | | feature l2vpn_evpn_not_nve_intf { |
| description | | description |
| "l2vpn evpn not nve intf"; | | "l2vpn evpn not nve intf"; |
| } | | } |
| | | |
| feature l2vpn_evpn_is_bundle_intf { | | feature l2vpn_evpn_is_bundle_intf { |
| description | | description |
| "l2vpn evpn is bundle intf"; | | "l2vpn evpn is bundle intf"; |
| } | | } |
| | | |
| feature l2vpn_evpn_ves_subif_supported { | | feature l2vpn_evpn_ves_subif_supported { |
| description | | description |
| "l2vpn evpn ves subif supported"; | | "l2vpn evpn ves subif supported"; |
| } | | } |
| | | |
| feature l2vpn_platform_srv6_supported { | | feature l2vpn_platform_srv6_supported { |
| description | | description |
| "l2vpn platform srv6 supported"; | | "l2vpn platform srv6 supported"; |
| } | | } |
| | | |
| feature l2vpn_iflist_intf_supported { | | feature l2vpn_iflist_intf_supported { |
| description | | description |
| "l2vpn iflist intf supported"; | | "l2vpn iflist intf supported"; |
| } | | } |
| | | |
| feature l2vpn_is_cli_supported { | | feature l2vpn_is_cli_supported { |
| description | | description |
| "l2vpn is cli supported"; | | "l2vpn is cli supported"; |
| } | | } |
| | | |
| feature l2vpn_bd_non_ether_ac_supported { | | feature l2vpn_bd_non_ether_ac_supported { |
| description | | description |
| "l2vpn bd non ether ac supported"; | | "l2vpn bd non ether ac supported"; |
| } | | } |
| | | |
| feature l2vpn_pw_p2mp_supported { | | feature l2vpn_pw_p2mp_supported { |
| description | | description |
| "l2vpn pw p2mp supported"; | | "l2vpn pw p2mp supported"; |
| } | | } |
| | | |
| feature l2vpn_cem_func_supported { | | feature l2vpn_cem_func_supported { |
| description | | description |
| "l2vpn cem func supported"; | | "l2vpn cem func supported"; |
| } | | } |
| | | |
| feature l2vpn_platform_vpws_seamless_integration_supported { | | feature l2vpn_platform_vpws_seamless_integration_supported { |
| description | | description |
| "l2vpn platform vpws seamless integration supported"; | | "l2vpn platform vpws seamless integration supported"; |
| } | | } |
| | | |
| feature l2vpn_p2p_backup_supported { | | feature l2vpn_p2p_backup_supported { |
| description | | description |
| "l2vpn p2p backup supported"; | | "l2vpn p2p backup supported"; |
| } | | } |
| | | |
| feature l2vpn_cfg_ipv6_pw_supported { | | feature l2vpn_cfg_ipv6_pw_supported { |
| description | | description |
| "l2vpn cfg ipv6 pw supported"; | | "l2vpn cfg ipv6 pw supported"; |
| } | | } |
| | | |
| grouping IF-BODY { | | grouping IF-BODY { |
| n | description | n | |
| "Grouping for interface"; | | |
| container host-routing { | | container host-routing { |
| when "../a1:interface-name[starts-with(text(),'BVI')]" { | | when "../a1:interface-name[starts-with(text(),'BVI')]" { |
| tailf:dependency "../a1:interface-name"; | | tailf:dependency "../a1:interface-name"; |
| } | | } |
| presence "Indicates a host-routing node is configured."; | | presence "Indicates a host-routing node is configured."; |
| description | | description |
| "Enable host-routing on this interface"; | | "Enable host-routing on this interface"; |
| } | | } |
| container gratuitous-announcement-timer { | | container gratuitous-announcement-timer { |
| presence "Indicates a gratuitous-announcement-timer node is configured."; | | presence "Indicates a gratuitous-announcement-timer node is configured."; |
| description | | description |
| "Enable gratuitous announcement (GARP) timer on this interface"; | | "Enable gratuitous announcement (GARP) timer on this interface"; |
| leaf interval { | | leaf interval { |
| type uint32 { | | type uint32 { |
| range "60..30000" { | | range "60..30000" { |
| description | | description |
| "seconds"; | | "seconds"; |
| } | | } |
| } | | } |
| description | | description |
| "Gratuitous announcement (GARP/NA) timer interval in seconds"; | | "Gratuitous announcement (GARP/NA) timer interval in seconds"; |
| } | | } |
| leaf jitter { | | leaf jitter { |
| type uint32 { | | type uint32 { |
| range "0..100" { | | range "0..100" { |
| description | | description |
| "percent"; | | "percent"; |
| } | | } |
| } | | } |
| description | | description |
| "Gratuitous announcement (GARP/NA) timer jitter percentage"; | | "Gratuitous announcement (GARP/NA) timer jitter percentage"; |
| } | | } |
| } | | } |
| container pw-ether { | | container pw-ether { |
| when "../a1:interface-name[starts-with(text(),'PW-Ether')]" { | | when "../a1:interface-name[starts-with(text(),'PW-Ether')]" { |
| tailf:dependency "../a1:interface-name"; | | tailf:dependency "../a1:interface-name"; |
| } | | } |
| description | | description |
| "Configuration for pw-ether interface"; | | "Configuration for pw-ether interface"; |
| container attach { | | container attach { |
| description | | description |
| "Attach to an interface list"; | | "Attach to an interface list"; |
| leaf generic-interface-list { | | leaf generic-interface-list { |
| type xr:Cisco-ios-xr-string { | | type xr:Cisco-ios-xr-string { |
| length "1..32" { | | length "1..32" { |
| description | | description |
| "The name of the interface list"; | | "The name of the interface list"; |
| } | | } |
| } | | } |
| description | | description |
| "Interface List"; | | "Interface List"; |
| } | | } |
| } | | } |
| leaf l2overhead { | | leaf l2overhead { |
| type uint32 { | | type uint32 { |
| range "1..64" { | | range "1..64" { |
| description | | description |
| "L2 overhead size in bytes"; | | "L2 overhead size in bytes"; |
| } | | } |
| } | | } |
| description | | description |
| "Set Layer 2 Overhead size"; | | "Set Layer 2 Overhead size"; |
| } | | } |
| } | | } |
| container pw-iw { | | container pw-iw { |
| when "../a1:interface-name[starts-with(text(),'PW-IW')]" { | | when "../a1:interface-name[starts-with(text(),'PW-IW')]" { |
| tailf:dependency "../a1:interface-name"; | | tailf:dependency "../a1:interface-name"; |
| } | | } |
| description | | description |
| "Configuration for pw-iw interface"; | | "Configuration for pw-iw interface"; |
| container attach { | | container attach { |
| description | | description |
| "Attach to an interface list"; | | "Attach to an interface list"; |
| leaf generic-interface-list { | | leaf generic-interface-list { |
| type xr:Cisco-ios-xr-string { | | type xr:Cisco-ios-xr-string { |
| length "1..32" { | | length "1..32" { |
| description | | description |
| "The name of the interface list"; | | "The name of the interface list"; |
| } | | } |
| } | | } |
| description | | description |
| "Interface List"; | | "Interface List"; |
| } | | } |
| } | | } |
| leaf l2overhead { | | leaf l2overhead { |
| type uint32 { | | type uint32 { |
| range "1..64" { | | range "1..64" { |
| description | | description |
| "L2 overhead size in bytes"; | | "L2 overhead size in bytes"; |
| } | | } |
| } | | } |
| description | | description |
| "Set Layer 2 Overhead size"; | | "Set Layer 2 Overhead size"; |
| } | | } |
| } | | } |
| } | | } |
| | | |
| grouping VRF-BODY { | | grouping VRF-BODY { |
| n | description | n | |
| "Grouping for vrf"; | | |
| leaf evpn-route-sync { | | leaf evpn-route-sync { |
| type uint32 { | | type uint32 { |
| range "1..65534" { | | range "1..65534" { |
| description | | description |
| "EVPN Instance VPN ID used to synchronize the VRF route(s)"; | | "EVPN Instance VPN ID used to synchronize the VRF route(s)"; |
| } | | } |
| } | | } |
| description | | description |
| "Configure the EVPN Instance VPN ID for route synchronization"; | | "Configure the EVPN Instance VPN ID for route synchronization"; |
| } | | } |
| } | | } |
| | | |
| augment "/a1:interfaces/a1:interface" { | | augment "/a1:interfaces/a1:interface" { |
| n | description | n | |
| "This augment extends active nodes configuration"; | | |
| uses IF-BODY; | | uses IF-BODY; |
| } | | } |
| augment "/a1:interfaces/a1:interface-preconfigure" { | | augment "/a1:interfaces/a1:interface-preconfigure" { |
| n | description | n | |
| "This augment extends preconfigured nodes | | |
| configuration"; | | |
| uses IF-BODY; | | uses IF-BODY; |
| } | | } |
| augment "/a2:snmp-server/a2:traps" { | | augment "/a2:snmp-server/a2:traps" { |
| n | description | n | |
| "This augment extends snmp-server traps nodes | | |
| configuration"; | | |
| container l2vpn { | | container l2vpn { |
| description | | description |
| "Enable L2VPN traps"; | | "Enable L2VPN traps"; |
| container all { | | container all { |
| presence "Indicates a all node is configured."; | | presence "Indicates a all node is configured."; |
| description | | description |
| "Enable all L2VPN traps"; | | "Enable all L2VPN traps"; |
| } | | } |
| container vc-up { | | container vc-up { |
| presence "Indicates a vc-up node is configured."; | | presence "Indicates a vc-up node is configured."; |
| description | | description |
| "Enable VC up traps"; | | "Enable VC up traps"; |
| } | | } |
| container vc-down { | | container vc-down { |
| presence "Indicates a vc-down node is configured."; | | presence "Indicates a vc-down node is configured."; |
| description | | description |
| "Enable VC down traps"; | | "Enable VC down traps"; |
| } | | } |
| container cisco { | | container cisco { |
| presence "Indicates a cisco node is configured."; | | presence "Indicates a cisco node is configured."; |
| description | | description |
| "Cisco format including extra varbinds (default IETF)"; | | "Cisco format including extra varbinds (default IETF)"; |
| } | | } |
| } | | } |
| container vpls { | | container vpls { |
| description | | description |
| "Enable VPLS traps"; | | "Enable VPLS traps"; |
| container all { | | container all { |
| presence "Indicates a all node is configured."; | | presence "Indicates a all node is configured."; |
| description | | description |
| "Enable all VPLS traps"; | | "Enable all VPLS traps"; |
| } | | } |
| container status { | | container status { |
| presence "Indicates a status node is configured."; | | presence "Indicates a status node is configured."; |
| description | | description |
| "Enable VPLS Status traps"; | | "Enable VPLS Status traps"; |
| } | | } |
| container full-raise { | | container full-raise { |
| presence "Indicates a full-raise node is configured."; | | presence "Indicates a full-raise node is configured."; |
| description | | description |
| "Enable VPLS Full Raise traps"; | | "Enable VPLS Full Raise traps"; |
| } | | } |
| container full-clear { | | container full-clear { |
| presence "Indicates a full-clear node is configured."; | | presence "Indicates a full-clear node is configured."; |
| description | | description |
| "Enable VPLS Full Clear traps"; | | "Enable VPLS Full Clear traps"; |
| } | | } |
| } | | } |
| } | | } |
| augment "/a3:vrfs/a3:vrf" { | | augment "/a3:vrfs/a3:vrf" { |
| n | description | n | |
| "This augment extends vrf nodes configuration"; | | |
| uses VRF-BODY; | | uses VRF-BODY; |
| } | | } |
| container evpn { | | container evpn { |
| presence "Indicates a evpn node is configured."; | | presence "Indicates a evpn node is configured."; |
| description | | description |
| "Configure E-VPN commands"; | | "Configure E-VPN commands"; |
| container interface { | | container interface { |
| description | | description |
| "Assign interface to EVPN"; | | "Assign interface to EVPN"; |
| list interface { | | list interface { |
| key "interface-name"; | | key "interface-name"; |
| description | | description |
| "Specify interface name"; | | "Specify interface name"; |
| leaf interface-name { | | leaf interface-name { |
| type xr:Interface-name; | | type xr:Interface-name; |
| description | | description |
| "Specify interface name"; | | "Specify interface name"; |
| } | | } |
| container mac-flush { | | container mac-flush { |
| description | | description |
| "MAC Flush mode"; | | "MAC Flush mode"; |
| container mvrp { | | container mvrp { |
| presence "Indicates a mvrp node is configured."; | | presence "Indicates a mvrp node is configured."; |
| description | | description |
| "MAC Flush over MVRP"; | | "MAC Flush over MVRP"; |
| } | | } |
| } | | } |
| container timers { | | container timers { |
| presence "Indicates a timers node is configured."; | | presence "Indicates a timers node is configured."; |
| description | | description |
| "Configure interface-specific EVPN timers"; | | "Configure interface-specific EVPN timers"; |
| leaf peering { | | leaf peering { |
| type uint32 { | | type uint32 { |
| range "0..300" { | | range "0..300" { |
| description | | description |
| "Value in seconds, default is 3 seconds"; | | "Value in seconds, default is 3 seconds"; |
| } | | } |
| } | | } |
| description | | description |
| "Interface-specific peering timer"; | | "Interface-specific peering timer"; |
| } | | } |
| leaf recovery { | | leaf recovery { |
| type uint32 { | | type uint32 { |
| range "0..3600" { | | range "0..3600" { |
| description | | description |
| "Value in seconds, default is 30 seconds"; | | "Value in seconds, default is 30 seconds"; |
| } | | } |
| } | | } |
| description | | description |
| "Interface-specific recovery timer"; | | "Interface-specific recovery timer"; |
| } | | } |
| leaf carving { | | leaf carving { |
| type uint32 { | | type uint32 { |
| range "0..300" { | | range "0..300" { |
| description | | description |
| "Value in seconds, default is 0 seconds"; | | "Value in seconds, default is 0 seconds"; |
| } | | } |
| } | | } |
| description | | description |
| "Interface-specific carving timer"; | | "Interface-specific carving timer"; |
| } | | } |
| leaf ac-debounce { | | leaf ac-debounce { |
| type uint32 { | | type uint32 { |
| range "0..300000" { | | range "0..300000" { |
| description | | description |
| "Value in milliseconds, default is 3000 milliseconds"; | | "Value in milliseconds, default is 3000 milliseconds"; |
| } | | } |
| } | | } |
| description | | description |
| "Interface-specific AC Debounce timer"; | | "Interface-specific AC Debounce timer"; |
| } | | } |
| } | | } |
| container ethernet-segment { | | container ethernet-segment { |
| presence "Indicates a ethernet-segment node is configured."; | | presence "Indicates a ethernet-segment node is configured."; |
| description | | description |
| "Ethernet Segment configuration commands"; | | "Ethernet Segment configuration commands"; |
| container identifier { | | container identifier { |
| description | | description |
| "Ethernet Segment identifier (ESI)"; | | "Ethernet Segment identifier (ESI)"; |
| container type { | | container type { |
| description | | description |
| "ESI Type"; | | "ESI Type"; |
| container zero { | | container zero { |
| presence "Indicates a zero node is configured."; | | presence "Indicates a zero node is configured."; |
| description | | description |
| "Type 0 (arbitrary 9-octet ESI value)"; | | "Type 0 (arbitrary 9-octet ESI value)"; |
| n | leaf esi { | n | leaf bytes-1 { |
| type string { | | type xr:Hex-integer-8; |
| length "1..254" { | | |
| description | | |
| "9-octet ESI value, xx.xx.xx.xx.xx.xx.xx.xx.xx"; | | |
| } | | |
| } | | |
| mandatory true; | | mandatory true; |
| description | | description |
| n | "ESI value"; | n | "1st Byte"; |
| | | } |
| | | leaf bytes-23 { |
| | | type xr:Hex-integer-16; |
| | | units "byte"; |
| | | mandatory true; |
| | | description |
| | | "2nd and 3rd Bytes"; |
| | | } |
| | | leaf bytes-45 { |
| | | type xr:Hex-integer-16; |
| | | units "byte"; |
| | | mandatory true; |
| | | description |
| | | "4th and 5th Bytes"; |
| | | } |
| | | leaf bytes-67 { |
| | | type xr:Hex-integer-16; |
| | | units "byte"; |
| | | mandatory true; |
| | | description |
| | | "6th and 7th Bytes"; |
| | | } |
| | | leaf bytes-89 { |
| | | type xr:Hex-integer-16; |
| | | units "byte"; |
| | | mandatory true; |
| | | description |
| | | "8th and 9th Bytes"; |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| container load-balancing-mode { | | container load-balancing-mode { |
| description | | description |
| "Specify load balancing mode"; | | "Specify load balancing mode"; |
| container all-active { | | container all-active { |
| must | | must |
| "not(../port-active or ../single-active | | "not(../port-active or ../single-active |
| or ../single-flow-active)"; | | or ../single-flow-active)"; |
| presence "Indicates a all-active node is configured."; | | presence "Indicates a all-active node is configured."; |
| description | | description |
| "All-Active load balancing"; | | "All-Active load balancing"; |
| } | | } |
| container port-active { | | container port-active { |
| must | | must |
| "not(../all-active or ../single-active | | "not(../all-active or ../single-active |
| or ../single-flow-active)"; | | or ../single-flow-active)"; |
| presence "Indicates a port-active node is configured."; | | presence "Indicates a port-active node is configured."; |
| description | | description |
| "Port-Active load balancing"; | | "Port-Active load balancing"; |
| } | | } |
| container single-active { | | container single-active { |
| must | | must |
| "not(../all-active or ../port-active | | "not(../all-active or ../port-active |
| or ../single-flow-active)"; | | or ../single-flow-active)"; |
| presence "Indicates a single-active node is configured."; | | presence "Indicates a single-active node is configured."; |
| description | | description |
| "Single-Active load balancing"; | | "Single-Active load balancing"; |
| } | | } |
| container single-flow-active { | | container single-flow-active { |
| must | | must |
| "not(../all-active or ../port-active | | "not(../all-active or ../port-active |
| or ../single-active)"; | | or ../single-active)"; |
| presence "Indicates a single-flow-active node is configured."; | | presence "Indicates a single-flow-active node is configured."; |
| description | | description |
| "Single-Flow-Active load balancing"; | | "Single-Flow-Active load balancing"; |
| } | | } |
| } | | } |
| leaf backbone-source-mac { | | leaf backbone-source-mac { |
| type yang:mac-address; | | type yang:mac-address; |
| description | | description |
| "Backbone Source MAC (PBB Only)"; | | "Backbone Source MAC (PBB Only)"; |
| } | | } |
| container force { | | container force { |
| description | | description |
| "Forced attributes for this ethernet segment"; | | "Forced attributes for this ethernet segment"; |
| container single-homed { | | container single-homed { |
| presence "Indicates a single-homed node is configured."; | | presence "Indicates a single-homed node is configured."; |
| description | | description |
| "Ethernet segment is to remain single-home"; | | "Ethernet segment is to remain single-home"; |
| } | | } |
| } | | } |
| container service-carving { | | container service-carving { |
| description | | description |
| "Specify service carving"; | | "Specify service carving"; |
| container manual { | | container manual { |
| presence "Indicates a manual node is configured."; | | presence "Indicates a manual node is configured."; |
| description | | description |
| "Configure EVPN Manual services list"; | | "Configure EVPN Manual services list"; |
| leaf primary { | | leaf primary { |
| type string { | | type string { |
| length "1..150" { | | length "1..150" { |
| description | | description |
| "Primary services list notation: '256,356-400,410'"; | | "Primary services list notation: '256,356-400,410'"; |
| } | | } |
| } | | } |
| must "../secondary"; | | must "../secondary"; |
| description | | description |
| "Primary services list"; | | "Primary services list"; |
| } | | } |
| leaf secondary { | | leaf secondary { |
| type string { | | type string { |
| length "1..150" { | | length "1..150" { |
| description | | description |
| "Secondary services list notation: '256,356-400,410'"; | | "Secondary services list notation: '256,356-400,410'"; |
| } | | } |
| } | | } |
| must "../primary"; | | must "../primary"; |
| description | | description |
| "Secondary services list"; | | "Secondary services list"; |
| } | | } |
| } | | } |
| container hrw { | | container hrw { |
| presence "Indicates a hrw node is configured."; | | presence "Indicates a hrw node is configured."; |
| description | | description |
| "HRW mode of carving services"; | | "HRW mode of carving services"; |
| } | | } |
| container multicast { | | container multicast { |
| description | | description |
| "Multicast specific service carving"; | | "Multicast specific service carving"; |
| container hrw-s-g { | | container hrw-s-g { |
| must "not(../hrw-g)"; | | must "not(../hrw-g)"; |
| presence "Indicates a hrw-s-g node is configured."; | | presence "Indicates a hrw-s-g node is configured."; |
| description | | description |
| "HRW s,g mode"; | | "HRW s,g mode"; |
| } | | } |
| container hrw-g { | | container hrw-g { |
| must "not(../hrw-s-g)"; | | must "not(../hrw-s-g)"; |
| presence "Indicates a hrw-g node is configured."; | | presence "Indicates a hrw-g node is configured."; |
| description | | description |
| "HRW *,g mode"; | | "HRW *,g mode"; |
| } | | } |
| } | | } |
| container preference-based { | | container preference-based { |
| presence "Indicates a preference-based node is configured."; | | presence "Indicates a preference-based node is configured."; |
| description | | description |
| "Configure EVPN Preference-Based"; | | "Configure EVPN Preference-Based"; |
| leaf weight { | | leaf weight { |
| type uint32 { | | type uint32 { |
| range "0..65535" { | | range "0..65535" { |
| description | | description |
| "Preference DF weight. For Access-Driven DF, use weights of at most 32767 or less."; | | "Preference DF weight. For Access-Driven DF, use weights of at most 32767 or less."; |
| } | | } |
| } | | } |
| description | | description |
| "Preference value"; | | "Preference value"; |
| } | | } |
| container access-driven { | | container access-driven { |
| presence "Indicates a access-driven node is configured."; | | presence "Indicates a access-driven node is configured."; |
| description | | description |
| "Access-Driven DF Election"; | | "Access-Driven DF Election"; |
| } | | } |
| } | | } |
| } | | } |
| container bgp { | | container bgp { |
| description | | description |
| "Configure BGP"; | | "Configure BGP"; |
| leaf route-target { | | leaf route-target { |
| type yang:mac-address; | | type yang:mac-address; |
| description | | description |
| "Set ES-Import Route Target"; | | "Set ES-Import Route Target"; |
| } | | } |
| } | | } |
| container convergence { | | container convergence { |
| presence "Indicates a convergence node is configured."; | | presence "Indicates a convergence node is configured."; |
| description | | description |
| "Specify convergence mode(s) and options"; | | "Specify convergence mode(s) and options"; |
| container reroute { | | container reroute { |
| presence "Indicates a reroute node is configured."; | | presence "Indicates a reroute node is configured."; |
| description | | description |
| "Redirect unicast traffic to backup peer"; | | "Redirect unicast traffic to backup peer"; |
| } | | } |
| container mac-mobility { | | container mac-mobility { |
| presence "Indicates a mac-mobility node is configured."; | | presence "Indicates a mac-mobility node is configured."; |
| description | | description |
| "MAC-Mobility triggered reconvergence"; | | "MAC-Mobility triggered reconvergence"; |
| } | | } |
| container nexthop-tracking { | | container nexthop-tracking { |
| presence "Indicates a nexthop-tracking node is configured."; | | presence "Indicates a nexthop-tracking node is configured."; |
| description | | description |
| "Enable EVPN procedures to be influenced by BGP nexthop reachability"; | | "Enable EVPN procedures to be influenced by BGP nexthop reachability"; |
| } | | } |
| } | | } |
| } | | } |
| leaf core-isolation-group { | | leaf core-isolation-group { |
| if-feature "l2vpn_evpn_is_bundle_intf"; | | if-feature "l2vpn_evpn_is_bundle_intf"; |
| type uint32 { | | type uint32 { |
| range "1..4294967295" { | | range "1..4294967295" { |
| description | | description |
| "EVPN group ID number"; | | "EVPN group ID number"; |
| } | | } |
| } | | } |
| description | | description |
| "Core isolation group"; | | "Core isolation group"; |
| } | | } |
| container access-signal { | | container access-signal { |
| if-feature "l2vpn_evpn_is_bundle_intf"; | | if-feature "l2vpn_evpn_is_bundle_intf"; |
| description | | description |
| "Override default signal sent to bring down access circuit"; | | "Override default signal sent to bring down access circuit"; |
| container bundle-down { | | container bundle-down { |
| presence "Indicates a bundle-down node is configured."; | | presence "Indicates a bundle-down node is configured."; |
| description | | description |
| "Signal Bundle Down"; | | "Signal Bundle Down"; |
| } | | } |
| } | | } |
| container virtual-ethernet-segment { | | container virtual-ethernet-segment { |
| if-feature "l2vpn_evpn_ves_subif_supported"; | | if-feature "l2vpn_evpn_ves_subif_supported"; |
| presence "Indicates a virtual-ethernet-segment node is configured."; | | presence "Indicates a virtual-ethernet-segment node is configured."; |
| description | | description |
| "Virtual Ethernet Segment configuration commands"; | | "Virtual Ethernet Segment configuration commands"; |
| container identifier { | | container identifier { |
| description | | description |
| "VES identifier (6 byte value in MAC format)"; | | "VES identifier (6 byte value in MAC format)"; |
| container type { | | container type { |
| description | | description |
| "ESI Type"; | | "ESI Type"; |
| leaf three { | | leaf three { |
| type yang:mac-address; | | type yang:mac-address; |
| description | | description |
| "Type 3 (6-byte value in MAC format)"; | | "Type 3 (6-byte value in MAC format)"; |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| container virtual { | | container virtual { |
| if-feature "l2vpn_evpn_ves_subif_supported"; | | if-feature "l2vpn_evpn_ves_subif_supported"; |
| description | | description |
| "Virtual Access Segment to EVPN"; | | "Virtual Access Segment to EVPN"; |
| container neighbor { | | container neighbor { |
| description | | description |
| "Specify the peer to cross connect"; | | "Specify the peer to cross connect"; |
| list neighbor { | | list neighbor { |
| key "address pw-id"; | | key "address pw-id"; |
| description | | description |
| "Specify the peer to cross connect"; | | "Specify the peer to cross connect"; |
| leaf address { | | leaf address { |
| type inet:ipv4-address-no-zone; | | type inet:ipv4-address-no-zone; |
| description | | description |
| "IPv4 address of the peer"; | | "IPv4 address of the peer"; |
| } | | } |
| leaf pw-id { | | leaf pw-id { |
| type uint32 { | | type uint32 { |
| range "1..4294967295" { | | range "1..4294967295" { |
| description | | description |
| "Pseudowire ID"; | | "Pseudowire ID"; |
| } | | } |
| } | | } |
| description | | description |
| "Specify the pseudowire id"; | | "Specify the pseudowire id"; |
| } | | } |
| container timers { | | container timers { |
| presence "Indicates a timers node is configured."; | | presence "Indicates a timers node is configured."; |
| description | | description |
| "Configure access PW-specific EVPN timers"; | | "Configure access PW-specific EVPN timers"; |
| leaf peering { | | leaf peering { |
| type uint32 { | | type uint32 { |
| range "0..300" { | | range "0..300" { |
| description | | description |
| "Value in seconds, default is 3 seconds"; | | "Value in seconds, default is 3 seconds"; |
| } | | } |
| } | | } |
| description | | description |
| "Access PW-specific peering timer"; | | "Access PW-specific peering timer"; |
| } | | } |
| leaf recovery { | | leaf recovery { |
| type uint32 { | | type uint32 { |
| range "0..3600" { | | range "0..3600" { |
| description | | description |
| "Value in seconds, default is 30 seconds"; | | "Value in seconds, default is 30 seconds"; |
| } | | } |
| } | | } |
| description | | description |
| "Access PW-specific recovery timer"; | | "Access PW-specific recovery timer"; |
| } | | } |
| leaf carving { | | leaf carving { |
| type uint32 { | | type uint32 { |
| range "0..300" { | | range "0..300" { |
| description | | description |
| "Value in seconds, default is 0 seconds"; | | "Value in seconds, default is 0 seconds"; |
| } | | } |
| } | | } |
| description | | description |
| "Access PW-specific carving timer"; | | "Access PW-specific carving timer"; |
| } | | } |
| leaf ac-debounce { | | leaf ac-debounce { |
| type uint32 { | | type uint32 { |
| range "0..300000" { | | range "0..300000" { |
| description | | description |
| "Value in milliseconds, default is 3000 milliseconds"; | | "Value in milliseconds, default is 3000 milliseconds"; |
| } | | } |
| } | | } |
| description | | description |
| "Access PW-specific AC Debounce timer"; | | "Access PW-specific AC Debounce timer"; |
| } | | } |
| } | | } |
| container ethernet-segment { | | container ethernet-segment { |
| presence "Indicates a ethernet-segment node is configured."; | | presence "Indicates a ethernet-segment node is configured."; |
| description | | description |
| "Ethernet Segment configuration commands"; | | "Ethernet Segment configuration commands"; |
| container identifier { | | container identifier { |
| description | | description |
| "Ethernet Segment identifier (ESI)"; | | "Ethernet Segment identifier (ESI)"; |
| container type { | | container type { |
| description | | description |
| "ESI Type"; | | "ESI Type"; |
| container zero { | | container zero { |
| presence "Indicates a zero node is configured."; | | presence "Indicates a zero node is configured."; |
| description | | description |
| "Type 0 (arbitrary 9-octet ESI value)"; | | "Type 0 (arbitrary 9-octet ESI value)"; |
| n | leaf esi { | n | leaf bytes-1 { |
| type string { | | type xr:Hex-integer-8; |
| length "1..254" { | | |
| description | | |
| "9-octet ESI value, xx.xx.xx.xx.xx.xx.xx.xx.xx"; | | |
| } | | |
| } | | |
| mandatory true; | | mandatory true; |
| description | | description |
| n | "ESI value"; | n | "1st Byte"; |
| | | } |
| | | leaf bytes-23 { |
| | | type xr:Hex-integer-16; |
| | | units "byte"; |
| | | mandatory true; |
| | | description |
| | | "2nd and 3rd Bytes"; |
| | | } |
| | | leaf bytes-45 { |
| | | type xr:Hex-integer-16; |
| | | units "byte"; |
| | | mandatory true; |
| | | description |
| | | "4th and 5th Bytes"; |
| | | } |
| | | leaf bytes-67 { |
| | | type xr:Hex-integer-16; |
| | | units "byte"; |
| | | mandatory true; |
| | | description |
| | | "6th and 7th Bytes"; |
| | | } |
| | | leaf bytes-89 { |
| | | type xr:Hex-integer-16; |
| | | units "byte"; |
| | | mandatory true; |
| | | description |
| | | "8th and 9th Bytes"; |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| container service-carving { | | container service-carving { |
| description | | description |
| "Specify service carving"; | | "Specify service carving"; |
| container manual { | | container manual { |
| presence "Indicates a manual node is configured."; | | presence "Indicates a manual node is configured."; |
| description | | description |
| "Configure EVPN Manual services list"; | | "Configure EVPN Manual services list"; |
| leaf primary { | | leaf primary { |
| type string { | | type string { |
| length "1..150" { | | length "1..150" { |
| description | | description |
| "Primary services list notation: '256,356-400,410'"; | | "Primary services list notation: '256,356-400,410'"; |
| } | | } |
| } | | } |
| must "../secondary"; | | must "../secondary"; |
| description | | description |
| "Primary services list"; | | "Primary services list"; |
| } | | } |
| leaf secondary { | | leaf secondary { |
| type string { | | type string { |
| length "1..150" { | | length "1..150" { |
| description | | description |
| "Secondary services list notation: '256,356-400,410'"; | | "Secondary services list notation: '256,356-400,410'"; |
| } | | } |
| } | | } |
| must "../primary"; | | must "../primary"; |
| description | | description |
| "Secondary services list"; | | "Secondary services list"; |
| } | | } |
| } | | } |
| container hrw { | | container hrw { |
| presence "Indicates a hrw node is configured."; | | presence "Indicates a hrw node is configured."; |
| description | | description |
| "HRW mode of carving services"; | | "HRW mode of carving services"; |
| } | | } |
| container multicast { | | container multicast { |
| description | | description |
| "Multicast specific service carving"; | | "Multicast specific service carving"; |
| container hrw-s-g { | | container hrw-s-g { |
| must "not(../hrw-g)"; | | must "not(../hrw-g)"; |
| presence "Indicates a hrw-s-g node is configured."; | | presence "Indicates a hrw-s-g node is configured."; |
| description | | description |
| "HRW s,g mode"; | | "HRW s,g mode"; |
| } | | } |
| container hrw-g { | | container hrw-g { |
| must "not(../hrw-s-g)"; | | must "not(../hrw-s-g)"; |
| presence "Indicates a hrw-g node is configured."; | | presence "Indicates a hrw-g node is configured."; |
| description | | description |
| "HRW *,g mode"; | | "HRW *,g mode"; |
| } | | } |
| } | | } |
| container preference-based { | | container preference-based { |
| presence "Indicates a preference-based node is configured."; | | presence "Indicates a preference-based node is configured."; |
| description | | description |
| "Configure EVPN Preference-Based"; | | "Configure EVPN Preference-Based"; |
| leaf weight { | | leaf weight { |
| type uint32 { | | type uint32 { |
| range "0..65535" { | | range "0..65535" { |
| description | | description |
| "Preference DF weight. For Access-Driven DF, use weights of at most 32767 or less."; | | "Preference DF weight. For Access-Driven DF, use weights of at most 32767 or less."; |
| } | | } |
| } | | } |
| description | | description |
| "Preference value"; | | "Preference value"; |
| } | | } |
| container access-driven { | | container access-driven { |
| presence "Indicates a access-driven node is configured."; | | presence "Indicates a access-driven node is configured."; |
| description | | description |
| "Access-Driven DF Election"; | | "Access-Driven DF Election"; |
| } | | } |
| } | | } |
| } | | } |
| container bgp { | | container bgp { |
| description | | description |
| "Configure BGP"; | | "Configure BGP"; |
| leaf route-target { | | leaf route-target { |
| type yang:mac-address; | | type yang:mac-address; |
| description | | description |
| "Set ES-Import Route Target"; | | "Set ES-Import Route Target"; |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| container vfis { | | container vfis { |
| description | | description |
| "Specify the virtual forwarding interface name"; | | "Specify the virtual forwarding interface name"; |
| list vfi { | | list vfi { |
| key "vfi-name"; | | key "vfi-name"; |
| description | | description |
| "Specify the virtual forwarding interface name"; | | "Specify the virtual forwarding interface name"; |
| leaf vfi-name { | | leaf vfi-name { |
| type xr:Cisco-ios-xr-string { | | type xr:Cisco-ios-xr-string { |
| length "1..32" { | | length "1..32" { |
| description | | description |
| "Name of the Virtual Forwarding Interface"; | | "Name of the Virtual Forwarding Interface"; |
| } | | } |
| } | | } |
| description | | description |
| "Specify the virtual forwarding interface name"; | | "Specify the virtual forwarding interface name"; |
| } | | } |
| container timers { | | container timers { |
| presence "Indicates a timers node is configured."; | | presence "Indicates a timers node is configured."; |
| description | | description |
| "Configure access VFI-specific EVPN timers"; | | "Configure access VFI-specific EVPN timers"; |
| leaf peering { | | leaf peering { |
| type uint32 { | | type uint32 { |
| range "0..300" { | | range "0..300" { |
| description | | description |
| "Value in seconds, default is 3 seconds"; | | "Value in seconds, default is 3 seconds"; |
| } | | } |
| } | | } |
| description | | description |
| "Access VFI-specific peering timer"; | | "Access VFI-specific peering timer"; |
| } | | } |
| leaf recovery { | | leaf recovery { |
| type uint32 { | | type uint32 { |
| range "0..3600" { | | range "0..3600" { |
| description | | description |
| "Value in seconds, default is 30 seconds"; | | "Value in seconds, default is 30 seconds"; |
| } | | } |
| } | | } |
| description | | description |
| "Access VFI-specific recovery timer"; | | "Access VFI-specific recovery timer"; |
| } | | } |
| leaf carving { | | leaf carving { |
| type uint32 { | | type uint32 { |
| range "0..300" { | | range "0..300" { |
| description | | description |
| "Value in seconds, default is 0 seconds"; | | "Value in seconds, default is 0 seconds"; |
| } | | } |
| } | | } |
| description | | description |
| "Access VFI-specific carving timer"; | | "Access VFI-specific carving timer"; |
| } | | } |
| leaf ac-debounce { | | leaf ac-debounce { |
| type uint32 { | | type uint32 { |
| range "0..300000" { | | range "0..300000" { |
| description | | description |
| "Value in milliseconds, default is 3000 milliseconds"; | | "Value in milliseconds, default is 3000 milliseconds"; |
| } | | } |
| } | | } |
| description | | description |
| "Access VFI-specific AC Debounce timer"; | | "Access VFI-specific AC Debounce timer"; |
| } | | } |
| } | | } |
| container ethernet-segment { | | container ethernet-segment { |
| presence "Indicates a ethernet-segment node is configured."; | | presence "Indicates a ethernet-segment node is configured."; |
| description | | description |
| "Ethernet Segment configuration commands"; | | "Ethernet Segment configuration commands"; |
| container identifier { | | container identifier { |
| description | | description |
| "Ethernet Segment identifier (ESI)"; | | "Ethernet Segment identifier (ESI)"; |
| container type { | | container type { |
| description | | description |
| "ESI Type"; | | "ESI Type"; |
| container zero { | | container zero { |
| presence "Indicates a zero node is configured."; | | presence "Indicates a zero node is configured."; |
| description | | description |
| "Type 0 (arbitrary 9-octet ESI value)"; | | "Type 0 (arbitrary 9-octet ESI value)"; |
| n | leaf esi { | n | leaf bytes-1 { |
| type string { | | type xr:Hex-integer-8; |
| length "1..254" { | | |
| description | | |
| "9-octet ESI value, xx.xx.xx.xx.xx.xx.xx.xx.xx"; | | |
| } | | |
| } | | |
| mandatory true; | | mandatory true; |
| description | | description |
| n | "ESI value"; | n | "1st Byte"; |
| | | } |
| | | leaf bytes-23 { |
| | | type xr:Hex-integer-16; |
| | | units "byte"; |
| | | mandatory true; |
| | | description |
| | | "2nd and 3rd Bytes"; |
| | | } |
| | | leaf bytes-45 { |
| | | type xr:Hex-integer-16; |
| | | units "byte"; |
| | | mandatory true; |
| | | description |
| | | "4th and 5th Bytes"; |
| | | } |
| | | leaf bytes-67 { |
| | | type xr:Hex-integer-16; |
| | | units "byte"; |
| | | mandatory true; |
| | | description |
| | | "6th and 7th Bytes"; |
| | | } |
| | | leaf bytes-89 { |
| | | type xr:Hex-integer-16; |
| | | units "byte"; |
| | | mandatory true; |
| | | description |
| | | "8th and 9th Bytes"; |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| container service-carving { | | container service-carving { |
| description | | description |
| "Specify service carving"; | | "Specify service carving"; |
| container manual { | | container manual { |
| presence "Indicates a manual node is configured."; | | presence "Indicates a manual node is configured."; |
| description | | description |
| "Configure EVPN Manual services list"; | | "Configure EVPN Manual services list"; |
| leaf primary { | | leaf primary { |
| type string { | | type string { |
| length "1..150" { | | length "1..150" { |
| description | | description |
| "Primary services list notation: '256,356-400,410'"; | | "Primary services list notation: '256,356-400,410'"; |
| } | | } |
| } | | } |
| must "../secondary"; | | must "../secondary"; |
| description | | description |
| "Primary services list"; | | "Primary services list"; |
| } | | } |
| leaf secondary { | | leaf secondary { |
| type string { | | type string { |
| length "1..150" { | | length "1..150" { |
| description | | description |
| "Secondary services list notation: '256,356-400,410'"; | | "Secondary services list notation: '256,356-400,410'"; |
| } | | } |
| } | | } |
| must "../primary"; | | must "../primary"; |
| description | | description |
| "Secondary services list"; | | "Secondary services list"; |
| } | | } |
| } | | } |
| container hrw { | | container hrw { |
| presence "Indicates a hrw node is configured."; | | presence "Indicates a hrw node is configured."; |
| description | | description |
| "HRW mode of carving services"; | | "HRW mode of carving services"; |
| } | | } |
| container preference-based { | | container preference-based { |
| presence "Indicates a preference-based node is configured."; | | presence "Indicates a preference-based node is configured."; |
| description | | description |
| "Configure EVPN Preference-Based"; | | "Configure EVPN Preference-Based"; |
| leaf weight { | | leaf weight { |
| type uint32 { | | type uint32 { |
| range "0..65535" { | | range "0..65535" { |
| description | | description |
| "Preference DF weight. For Access-Driven DF, use weights of at most 32767 or less."; | | "Preference DF weight. For Access-Driven DF, use weights of at most 32767 or less."; |
| } | | } |
| } | | } |
| description | | description |
| "Preference value"; | | "Preference value"; |
| } | | } |
| container access-driven { | | container access-driven { |
| presence "Indicates a access-driven node is configured."; | | presence "Indicates a access-driven node is configured."; |
| description | | description |
| "Access-Driven DF Election"; | | "Access-Driven DF Election"; |
| } | | } |
| } | | } |
| } | | } |
| container bgp { | | container bgp { |
| description | | description |
| "Configure BGP"; | | "Configure BGP"; |
| leaf route-target { | | leaf route-target { |
| type yang:mac-address; | | type yang:mac-address; |
| description | | description |
| "Set ES-Import Route Target"; | | "Set ES-Import Route Target"; |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| container access-evi { | | container access-evi { |
| presence "Indicates a access-evi node is configured."; | | presence "Indicates a access-evi node is configured."; |
| description | | description |
| "Virtual access EVI interface"; | | "Virtual access EVI interface"; |
| container ethernet-segment { | | container ethernet-segment { |
| presence "Indicates a ethernet-segment node is configured."; | | presence "Indicates a ethernet-segment node is configured."; |
| description | | description |
| "Ethernet Segment configuration commands"; | | "Ethernet Segment configuration commands"; |
| container identifier { | | container identifier { |
| description | | description |
| "Ethernet Segment identifier (ESI)"; | | "Ethernet Segment identifier (ESI)"; |
| container type { | | container type { |
| description | | description |
| "ESI Type"; | | "ESI Type"; |
| container zero { | | container zero { |
| presence "Indicates a zero node is configured."; | | presence "Indicates a zero node is configured."; |
| description | | description |
| "Type 0 (arbitrary 9-octet ESI value)"; | | "Type 0 (arbitrary 9-octet ESI value)"; |
| n | leaf esi { | n | leaf bytes-1 { |
| type string { | | type xr:Hex-integer-8; |
| length "1..254" { | | |
| description | | |
| "9-octent ESI value, xx.xx.xx.xx.xx.xx.xx.xx.xx"; | | |
| } | | |
| } | | |
| mandatory true; | | mandatory true; |
| description | | description |
| n | "ESI value"; | n | "1st Byte"; |
| | | } |
| | | leaf bytes-23 { |
| | | type xr:Hex-integer-16; |
| | | units "byte"; |
| | | mandatory true; |
| | | description |
| | | "2nd and 3rd Bytes"; |
| | | } |
| | | leaf bytes-45 { |
| | | type xr:Hex-integer-16; |
| | | units "byte"; |
| | | mandatory true; |
| | | description |
| | | "4th and 5th Bytes"; |
| | | } |
| | | leaf bytes-67 { |
| | | type xr:Hex-integer-16; |
| | | units "byte"; |
| | | mandatory true; |
| | | description |
| | | "6th and 7th Bytes"; |
| | | } |
| | | leaf bytes-89 { |
| | | type xr:Hex-integer-16; |
| | | units "byte"; |
| | | mandatory true; |
| | | description |
| | | "8th and 9th Bytes"; |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| container bgp { | | container bgp { |
| description | | description |
| "Configure BGP"; | | "Configure BGP"; |
| leaf route-target { | | leaf route-target { |
| type yang:mac-address; | | type yang:mac-address; |
| description | | description |
| "Set ES-Import Route Target"; | | "Set ES-Import Route Target"; |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| container bgp { | | container bgp { |
| presence "Indicates a bgp node is configured."; | | presence "Indicates a bgp node is configured."; |
| description | | description |
| "Configure BGP"; | | "Configure BGP"; |
| container rd { | | container rd { |
| description | | description |
| "Set the Route Distinguisher"; | | "Set the Route Distinguisher"; |
| leaf two-byte-as-number { | | leaf two-byte-as-number { |
| type uint32 { | | type uint32 { |
| range "1..65535" { | | range "1..65535" { |
| description | | description |
| "Two Byte AS Number"; | | "Two Byte AS Number"; |
| } | | } |
| } | | } |
| n | must "not(../four-byte-as-number or ../ipv4-address) and ../two-byte-as-assigned-number"; | n | must "not(../four-byte-as-number or ../ipv4-address)"; |
| description | | description |
| "Two Byte AS Number"; | | "Two Byte AS Number"; |
| } | | } |
| leaf two-byte-as-assigned-number { | | leaf two-byte-as-assigned-number { |
| type uint32 { | | type uint32 { |
| range "0..4294967295" { | | range "0..4294967295" { |
| description | | description |
| "AS:nn (hex or decimal format)"; | | "AS:nn (hex or decimal format)"; |
| } | | } |
| } | | } |
| must "../two-byte-as-number"; | | must "../two-byte-as-number"; |
| description | | description |
| "AS:nn (hex or decimal format)"; | | "AS:nn (hex or decimal format)"; |
| } | | } |
| leaf four-byte-as-number { | | leaf four-byte-as-number { |
| type uint32 { | | type uint32 { |
| range "65536..4294967295" { | | range "65536..4294967295" { |
| description | | description |
| "Four Byte AS number"; | | "Four Byte AS number"; |
| } | | } |
| } | | } |
| n | must "not(../two-byte-as-number or ../ipv4-address) and ../four-byte-as-assigned-number"; | n | must "not(../two-byte-as-number or ../ipv4-address)"; |
| description | | description |
| "Four Byte AS number"; | | "Four Byte AS number"; |
| } | | } |
| leaf four-byte-as-assigned-number { | | leaf four-byte-as-assigned-number { |
| type uint32 { | | type uint32 { |
| range "0..65535" { | | range "0..65535" { |
| description | | description |
| "AS:nn (hex or decimal format)"; | | "AS:nn (hex or decimal format)"; |
| } | | } |
| } | | } |
| must "../four-byte-as-number"; | | must "../four-byte-as-number"; |
| description | | description |
| "AS:nn (hex or decimal format)"; | | "AS:nn (hex or decimal format)"; |
| } | | } |
| leaf ipv4-address { | | leaf ipv4-address { |
| type inet:ipv4-address-no-zone; | | type inet:ipv4-address-no-zone; |
| n | must "not(../two-byte-as-number or ../four-byte-as-number) and ../ipv4-address-assigned-number"; | n | must "not(../two-byte-as-number or ../four-byte-as-number)"; |
| description | | description |
| "IP address"; | | "IP address"; |
| } | | } |
| leaf ipv4-address-assigned-number { | | leaf ipv4-address-assigned-number { |
| type uint32 { | | type uint32 { |
| range "0..65535" { | | range "0..65535" { |
| description | | description |
| "IP-address:nn (hex or decimal format)"; | | "IP-address:nn (hex or decimal format)"; |
| } | | } |
| } | | } |
| must "../ipv4-address"; | | must "../ipv4-address"; |
| description | | description |
| "IP-address:nn (hex or decimal format)"; | | "IP-address:nn (hex or decimal format)"; |
| } | | } |
| } | | } |
| } | | } |
| container timers { | | container timers { |
| presence "Indicates a timers node is configured."; | | presence "Indicates a timers node is configured."; |
| description | | description |
| "Configure global EVPN timers"; | | "Configure global EVPN timers"; |
| leaf recovery { | | leaf recovery { |
| type uint32 { | | type uint32 { |
| range "0..3600" { | | range "0..3600" { |
| description | | description |
| "Value in seconds, default is 30 seconds"; | | "Value in seconds, default is 30 seconds"; |
| } | | } |
| } | | } |
| description | | description |
| "Global recovery timer"; | | "Global recovery timer"; |
| } | | } |
| leaf peering { | | leaf peering { |
| type uint32 { | | type uint32 { |
| range "0..300" { | | range "0..300" { |
| description | | description |
| "Value in seconds, default is 3 seconds"; | | "Value in seconds, default is 3 seconds"; |
| } | | } |
| } | | } |
| description | | description |
| "Global peering timer"; | | "Global peering timer"; |
| } | | } |
| leaf carving { | | leaf carving { |
| type uint32 { | | type uint32 { |
| range "0..300" { | | range "0..300" { |
| description | | description |
| "Value in seconds, default is 0 seconds"; | | "Value in seconds, default is 0 seconds"; |
| } | | } |
| } | | } |
| description | | description |
| "Global carving timer"; | | "Global carving timer"; |
| } | | } |
| leaf ac-debounce { | | leaf ac-debounce { |
| type uint32 { | | type uint32 { |
| range "0..300000" { | | range "0..300000" { |
| description | | description |
| "Value in milliseconds, default is 3000 milliseconds"; | | "Value in milliseconds, default is 3000 milliseconds"; |
| } | | } |
| } | | } |
| description | | description |
| "Global AC Debounce timer"; | | "Global AC Debounce timer"; |
| } | | } |
| leaf backup-replacement-delay { | | leaf backup-replacement-delay { |
| type uint32 { | | type uint32 { |
| range "0..300000" { | | range "0..300000" { |
| description | | description |
| "Value in milliseconds, default is 6000 milliseconds"; | | "Value in milliseconds, default is 6000 milliseconds"; |
| } | | } |
| } | | } |
| description | | description |
| "When receiving a new backup route, delay installation for this amount of time timer"; | | "When receiving a new backup route, delay installation for this amount of time timer"; |
| } | | } |
| leaf mac-postpone { | | leaf mac-postpone { |
| type uint32 { | | type uint32 { |
| range "0..300" { | | range "0..300" { |
| description | | description |
| "Value in seconds, default is 300 seconds"; | | "Value in seconds, default is 300 seconds"; |
| } | | } |
| } | | } |
| description | | description |
| "Global MAC withdraw postpone timer"; | | "Global MAC withdraw postpone timer"; |
| } | | } |
| } | | } |
| container load-balancing { | | container load-balancing { |
| presence "Indicates a load-balancing node is configured."; | | presence "Indicates a load-balancing node is configured."; |
| description | | description |
| "Configure EVPN Global load-balancing"; | | "Configure EVPN Global load-balancing"; |
| container flow-label { | | container flow-label { |
| description | | description |
| "PBB-EVPN Flow Label load balancing"; | | "PBB-EVPN Flow Label load balancing"; |
| container static { | | container static { |
| presence "Indicates a static node is configured."; | | presence "Indicates a static node is configured."; |
| description | | description |
| "Static configuration of Flow Label"; | | "Static configuration of Flow Label"; |
| } | | } |
| } | | } |
| } | | } |
| container source { | | container source { |
| description | | description |
| "Configure EVPN source interface"; | | "Configure EVPN source interface"; |
| leaf interface { | | leaf interface { |
| type xr:Interface-name; | | type xr:Interface-name; |
| description | | description |
| "Configure EVPN router-id implicitly through Loopback Interface"; | | "Configure EVPN router-id implicitly through Loopback Interface"; |
| } | | } |
| } | | } |
| container cost-out { | | container cost-out { |
| presence "Indicates a cost-out node is configured."; | | presence "Indicates a cost-out node is configured."; |
| description | | description |
| "Configure global EVPN cost-out"; | | "Configure global EVPN cost-out"; |
| } | | } |
| leaf startup-cost-in { | | leaf startup-cost-in { |
| type uint32 { | | type uint32 { |
| range "30..86400" { | | range "30..86400" { |
| description | | description |
| "Value in seconds, disabled by default"; | | "Value in seconds, disabled by default"; |
| } | | } |
| } | | } |
| description | | description |
| "Cost-in after reload timer"; | | "Cost-in after reload timer"; |
| } | | } |
| leaf staggered-bringup-timer { | | leaf staggered-bringup-timer { |
| type uint32 { | | type uint32 { |
| range "0..300000" { | | range "0..300000" { |
| description | | description |
| "Value in milliseconds, default is 5000 milliseconds"; | | "Value in milliseconds, default is 5000 milliseconds"; |
| } | | } |
| } | | } |
| description | | description |
| "Staggered bringup timer delay timer"; | | "Staggered bringup timer delay timer"; |
| } | | } |
| container logging { | | container logging { |
| presence "Indicates a logging node is configured."; | | presence "Indicates a logging node is configured."; |
| description | | description |
| "Configure evpn logging commands"; | | "Configure evpn logging commands"; |
| container df-election { | | container df-election { |
| presence "Indicates a df-election node is configured."; | | presence "Indicates a df-election node is configured."; |
| description | | description |
| "Enable Designated Forwarder election logging"; | | "Enable Designated Forwarder election logging"; |
| } | | } |
| } | | } |
| container ethernet-segment { | | container ethernet-segment { |
| presence "Indicates a ethernet-segment node is configured."; | | presence "Indicates a ethernet-segment node is configured."; |
| description | | description |
| "Configure global ethernet-segment commands"; | | "Configure global ethernet-segment commands"; |
| container type { | | container type { |
| description | | description |
| "ESI type"; | | "ESI type"; |
| container one { | | container one { |
| description | | description |
| "LACP ESI-auto-generation"; | | "LACP ESI-auto-generation"; |
| container auto-generation-disable { | | container auto-generation-disable { |
| presence "Indicates a auto-generation-disable node is configured."; | | presence "Indicates a auto-generation-disable node is configured."; |
| description | | description |
| "Disable ESI auto-generation"; | | "Disable ESI auto-generation"; |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| container groups { | | container groups { |
| description | | description |
| "Configure EVPN group"; | | "Configure EVPN group"; |
| list group { | | list group { |
| key "group-name"; | | key "group-name"; |
| description | | description |
| "Configure EVPN group"; | | "Configure EVPN group"; |
| leaf group-name { | | leaf group-name { |
| type uint32 { | | type uint32 { |
| range "1..4294967295" { | | range "1..4294967295" { |
| description | | description |
| "EVPN group ID number"; | | "EVPN group ID number"; |
| } | | } |
| } | | } |
| description | | description |
| "Configure EVPN group"; | | "Configure EVPN group"; |
| } | | } |
| container core { | | container core { |
| description | | description |
| "configure EVPN group core interface"; | | "configure EVPN group core interface"; |
| list interface { | | list interface { |
| key "interface-name"; | | key "interface-name"; |
| description | | description |
| "configure EVPN group core interface"; | | "configure EVPN group core interface"; |
| leaf interface-name { | | leaf interface-name { |
| type xr:Interface-name; | | type xr:Interface-name; |
| description | | description |
| "configure EVPN group core interface"; | | "configure EVPN group core interface"; |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| container evis { | | container evis { |
| description | | description |
| "Configure EVPN Instance VPN ID"; | | "Configure EVPN Instance VPN ID"; |
| container segment-routing { | | container segment-routing { |
| if-feature "l2vpn_platform_srv6_supported"; | | if-feature "l2vpn_platform_srv6_supported"; |
| description | | description |
| "Configure Segment Routing EVPN Instance"; | | "Configure Segment Routing EVPN Instance"; |
| container srv6 { | | container srv6 { |
| description | | description |
| "Configure SRv6 EVPN Instance"; | | "Configure SRv6 EVPN Instance"; |
| list evi { | | list evi { |
| key "vpn-id"; | | key "vpn-id"; |
| description | | description |
| "Configure EVPN Instance VPN ID"; | | "Configure EVPN Instance VPN ID"; |
| leaf vpn-id { | | leaf vpn-id { |
| type uint32 { | | type uint32 { |
| range "1..65534" { | | range "1..65534" { |
| description | | description |
| "EVPN Instance VPN ID value"; | | "EVPN Instance VPN ID value"; |
| } | | } |
| } | | } |
| description | | description |
| "Configure EVPN Instance VPN ID"; | | "Configure EVPN Instance VPN ID"; |
| } | | } |
| container bgp { | | container bgp { |
| presence "Indicates a bgp node is configured."; | | presence "Indicates a bgp node is configured."; |
| description | | description |
| "Configure BGP"; | | "Configure BGP"; |
| container rd { | | container rd { |
| description | | description |
| "Set the Route Distinguisher"; | | "Set the Route Distinguisher"; |
| leaf two-byte-as-number { | | leaf two-byte-as-number { |
| type uint32 { | | type uint32 { |
| range "1..65535" { | | range "1..65535" { |
| description | | description |
| "Two Byte AS Number"; | | "Two Byte AS Number"; |
| } | | } |
| } | | } |
| n | must "not(../four-byte-as-number or ../ipv4-address) and ../two-byte-as-assigned-number"; | n | must "not(../four-byte-as-number or ../ipv4-address)"; |
| description | | description |
| "Two Byte AS Number"; | | "Two Byte AS Number"; |
| } | | } |
| leaf two-byte-as-assigned-number { | | leaf two-byte-as-assigned-number { |
| type uint32 { | | type uint32 { |
| range "0..4294967295" { | | range "0..4294967295" { |
| description | | description |
| "AS:nn (hex or decimal format)"; | | "AS:nn (hex or decimal format)"; |
| } | | } |
| } | | } |
| must "../two-byte-as-number"; | | must "../two-byte-as-number"; |
| description | | description |
| "AS:nn (hex or decimal format)"; | | "AS:nn (hex or decimal format)"; |
| } | | } |
| leaf four-byte-as-number { | | leaf four-byte-as-number { |
| type uint32 { | | type uint32 { |
| range "65536..4294967295" { | | range "65536..4294967295" { |
| description | | description |
| "Four Byte AS number"; | | "Four Byte AS number"; |
| } | | } |
| } | | } |
| n | must "not(../two-byte-as-number or ../ipv4-address) and ../four-byte-as-assigned-number"; | n | must "not(../two-byte-as-number or ../ipv4-address)"; |
| description | | description |
| "Four Byte AS number"; | | "Four Byte AS number"; |
| } | | } |
| leaf four-byte-as-assigned-number { | | leaf four-byte-as-assigned-number { |
| type uint32 { | | type uint32 { |
| range "0..65535" { | | range "0..65535" { |
| description | | description |
| "AS:nn (hex or decimal format)"; | | "AS:nn (hex or decimal format)"; |
| } | | } |
| } | | } |
| must "../four-byte-as-number"; | | must "../four-byte-as-number"; |
| description | | description |
| "AS:nn (hex or decimal format)"; | | "AS:nn (hex or decimal format)"; |
| } | | } |
| leaf ipv4-address { | | leaf ipv4-address { |
| type inet:ipv4-address-no-zone; | | type inet:ipv4-address-no-zone; |
| n | must "not(../two-byte-as-number or ../four-byte-as-number) and ../ipv4-address-assigned-number"; | n | must "not(../two-byte-as-number or ../four-byte-as-number)"; |
| description | | description |
| "IP address"; | | "IP address"; |
| } | | } |
| leaf ipv4-address-assigned-number { | | leaf ipv4-address-assigned-number { |
| type uint32 { | | type uint32 { |
| range "0..65535" { | | range "0..65535" { |
| description | | description |
| "IP-address:nn (hex or decimal format)"; | | "IP-address:nn (hex or decimal format)"; |
| } | | } |
| } | | } |
| must "../ipv4-address"; | | must "../ipv4-address"; |
| description | | description |
| "IP-address:nn (hex or decimal format)"; | | "IP-address:nn (hex or decimal format)"; |
| } | | } |
| } | | } |
| container route-target { | | container route-target { |
| description | | description |
| "Set the Route Target"; | | "Set the Route Target"; |
| container two-byte-as-rts { | | container two-byte-as-rts { |
| description | | description |
| "Two Byte AS Number Route Target"; | | "Two Byte AS Number Route Target"; |
| list two-byte-as-rt { | | list two-byte-as-rt { |
| key "two-byte-as-number assigned-number"; | | key "two-byte-as-number assigned-number"; |
| description | | description |
| "Two Byte AS Number Route Target"; | | "Two Byte AS Number Route Target"; |
| leaf two-byte-as-number { | | leaf two-byte-as-number { |
| type uint32 { | | type uint32 { |
| range "1..65535"; | | range "1..65535"; |
| } | | } |
| description | | description |
| "Two Byte AS Number"; | | "Two Byte AS Number"; |
| } | | } |
| leaf assigned-number { | | leaf assigned-number { |
| type uint32 { | | type uint32 { |
| range "0..4294967295" { | | range "0..4294967295" { |
| description | | description |
| "AS:nn (hex or decimal format)"; | | "AS:nn (hex or decimal format)"; |
| } | | } |
| } | | } |
| description | | description |
| "AS:nn (hex or decimal format)"; | | "AS:nn (hex or decimal format)"; |
| } | | } |
| } | | } |
| } | | } |
| container four-byte-as-rts { | | container four-byte-as-rts { |
| description | | description |
| "Four Byte AS number Route Target"; | | "Four Byte AS number Route Target"; |
| list four-byte-as-rt { | | list four-byte-as-rt { |
| key "four-byte-as-number assigned-number"; | | key "four-byte-as-number assigned-number"; |
| description | | description |
| "Four Byte AS number Route Target"; | | "Four Byte AS number Route Target"; |
| leaf four-byte-as-number { | | leaf four-byte-as-number { |
| type uint32 { | | type uint32 { |
| range "65536..4294967295"; | | range "65536..4294967295"; |
| } | | } |
| description | | description |
| "Four Byte AS number"; | | "Four Byte AS number"; |
| } | | } |
| leaf assigned-number { | | leaf assigned-number { |
| type uint32 { | | type uint32 { |
| range "0..65535" { | | range "0..65535" { |
| description | | description |
| "AS:nn (hex or decimal format)"; | | "AS:nn (hex or decimal format)"; |
| } | | } |
| } | | } |
| description | | description |
| "AS:nn (hex or decimal format)"; | | "AS:nn (hex or decimal format)"; |
| } | | } |
| } | | } |
| } | | } |
| container ipv4-address-rts { | | container ipv4-address-rts { |
| description | | description |
| "IP address Route Target"; | | "IP address Route Target"; |
| list ipv4-address-rt { | | list ipv4-address-rt { |
| key "ipv4-address assigned-number"; | | key "ipv4-address assigned-number"; |
| description | | description |
| "IP address"; | | "IP address"; |
| leaf ipv4-address { | | leaf ipv4-address { |
| type inet:ipv4-address-no-zone; | | type inet:ipv4-address-no-zone; |
| description | | description |
| "IP address"; | | "IP address"; |
| } | | } |
| leaf assigned-number { | | leaf assigned-number { |
| type uint32 { | | type uint32 { |
| range "0..65535" { | | range "0..65535" { |
| description | | description |
| "IP-address:nn (hex or decimal format)"; | | "IP-address:nn (hex or decimal format)"; |
| } | | } |
| } | | } |
| description | | description |
| "IP-address:nn (hex or decimal format)"; | | "IP-address:nn (hex or decimal format)"; |
| } | | } |
| } | | } |
| } | | } |
| container none { | | container none { |
| presence "Indicates a none node is configured."; | | presence "Indicates a none node is configured."; |
| description | | description |
| "Withhold BGP RTs"; | | "Withhold BGP RTs"; |
| } | | } |
| container import { | | container import { |
| description | | description |
| "Import Route Target"; | | "Import Route Target"; |
| container two-byte-as-rts { | | container two-byte-as-rts { |
| description | | description |
| "Two Byte AS Number Route Target"; | | "Two Byte AS Number Route Target"; |
| list two-byte-as-rt { | | list two-byte-as-rt { |
| key "two-byte-as-number assigned-number"; | | key "two-byte-as-number assigned-number"; |
| description | | description |
| "Two Byte AS Number Route Target"; | | "Two Byte AS Number Route Target"; |
| leaf two-byte-as-number { | | leaf two-byte-as-number { |
| type uint32 { | | type uint32 { |
| range "1..65535"; | | range "1..65535"; |
| } | | } |
| description | | description |
| "Two Byte AS Number"; | | "Two Byte AS Number"; |
| } | | } |
| leaf assigned-number { | | leaf assigned-number { |
| type uint32 { | | type uint32 { |
| range "0..4294967295" { | | range "0..4294967295" { |
| description | | description |
| "AS:nn (hex or decimal format)"; | | "AS:nn (hex or decimal format)"; |
| } | | } |
| } | | } |
| description | | description |
| "AS:nn (hex or decimal format)"; | | "AS:nn (hex or decimal format)"; |
| } | | } |
| } | | } |
| } | | } |
| container four-byte-as-rts { | | container four-byte-as-rts { |
| description | | description |
| "Four Byte AS number Route Target"; | | "Four Byte AS number Route Target"; |
| list four-byte-as-rt { | | list four-byte-as-rt { |
| key "four-byte-as-number assigned-number"; | | key "four-byte-as-number assigned-number"; |
| description | | description |
| "Four Byte AS number Route Target"; | | "Four Byte AS number Route Target"; |
| leaf four-byte-as-number { | | leaf four-byte-as-number { |
| type uint32 { | | type uint32 { |
| range "65536..4294967295"; | | range "65536..4294967295"; |
| } | | } |
| description | | description |
| "Four Byte AS number"; | | "Four Byte AS number"; |
| } | | } |
| leaf assigned-number { | | leaf assigned-number { |
| type uint32 { | | type uint32 { |
| range "0..65535" { | | range "0..65535" { |
| description | | description |
| "AS:nn (hex or decimal format)"; | | "AS:nn (hex or decimal format)"; |
| } | | } |
| } | | } |
| description | | description |
| "AS:nn (hex or decimal format)"; | | "AS:nn (hex or decimal format)"; |
| } | | } |
| } | | } |
| } | | } |
| container ipv4-address-rts { | | container ipv4-address-rts { |
| description | | description |
| "IP address Route Target"; | | "IP address Route Target"; |
| list ipv4-address-rt { | | list ipv4-address-rt { |
| key "ipv4-address assigned-number"; | | key "ipv4-address assigned-number"; |
| description | | description |
| "IP address"; | | "IP address"; |
| leaf ipv4-address { | | leaf ipv4-address { |
| type inet:ipv4-address-no-zone; | | type inet:ipv4-address-no-zone; |
| description | | description |
| "IP address"; | | "IP address"; |
| } | | } |
| leaf assigned-number { | | leaf assigned-number { |
| type uint32 { | | type uint32 { |
| range "0..65535" { | | range "0..65535" { |
| description | | description |
| "IP-address:nn (hex or decimal format)"; | | "IP-address:nn (hex or decimal format)"; |
| } | | } |
| } | | } |
| description | | description |
| "IP-address:nn (hex or decimal format)"; | | "IP-address:nn (hex or decimal format)"; |
| } | | } |
| } | | } |
| } | | } |
| container none { | | container none { |
| presence "Indicates a none node is configured."; | | presence "Indicates a none node is configured."; |
| description | | description |
| "Withhold BGP RTs"; | | "Withhold BGP RTs"; |
| } | | } |
| } | | } |
| container export { | | container export { |
| description | | description |
| "Export Route Target"; | | "Export Route Target"; |
| container two-byte-as-rts { | | container two-byte-as-rts { |
| description | | description |
| "Two Byte AS Number Route Target"; | | "Two Byte AS Number Route Target"; |
| list two-byte-as-rt { | | list two-byte-as-rt { |
| key "two-byte-as-number assigned-number"; | | key "two-byte-as-number assigned-number"; |
| description | | description |
| "Two Byte AS Number Route Target"; | | "Two Byte AS Number Route Target"; |
| leaf two-byte-as-number { | | leaf two-byte-as-number { |
| type uint32 { | | type uint32 { |
| range "1..65535"; | | range "1..65535"; |
| } | | } |
| description | | description |
| "Two Byte AS Number"; | | "Two Byte AS Number"; |
| } | | } |
| leaf assigned-number { | | leaf assigned-number { |
| type uint32 { | | type uint32 { |
| range "0..4294967295" { | | range "0..4294967295" { |
| description | | description |
| "AS:nn (hex or decimal format)"; | | "AS:nn (hex or decimal format)"; |
| } | | } |
| } | | } |
| description | | description |
| "AS:nn (hex or decimal format)"; | | "AS:nn (hex or decimal format)"; |
| } | | } |
| } | | } |
| } | | } |
| container four-byte-as-rts { | | container four-byte-as-rts { |
| description | | description |
| "Four Byte AS number Route Target"; | | "Four Byte AS number Route Target"; |
| list four-byte-as-rt { | | list four-byte-as-rt { |
| key "four-byte-as-number assigned-number"; | | key "four-byte-as-number assigned-number"; |
| description | | description |
| "Four Byte AS number Route Target"; | | "Four Byte AS number Route Target"; |
| leaf four-byte-as-number { | | leaf four-byte-as-number { |
| type uint32 { | | type uint32 { |
| range "65536..4294967295"; | | range "65536..4294967295"; |
| } | | } |
| description | | description |
| "Four Byte AS number"; | | "Four Byte AS number"; |
| } | | } |
| leaf assigned-number { | | leaf assigned-number { |
| type uint32 { | | type uint32 { |
| range "0..65535" { | | range "0..65535" { |
| description | | description |
| "AS:nn (hex or decimal format)"; | | "AS:nn (hex or decimal format)"; |
| } | | } |
| } | | } |
| description | | description |
| "AS:nn (hex or decimal format)"; | | "AS:nn (hex or decimal format)"; |
| } | | } |
| } | | } |
| } | | } |
| container ipv4-address-rts { | | container ipv4-address-rts { |
| description | | description |
| "IP address Route Target"; | | "IP address Route Target"; |
| list ipv4-address-rt { | | list ipv4-address-rt { |
| key "ipv4-address assigned-number"; | | key "ipv4-address assigned-number"; |
| description | | description |
| "IP address"; | | "IP address"; |
| leaf ipv4-address { | | leaf ipv4-address { |
| type inet:ipv4-address-no-zone; | | type inet:ipv4-address-no-zone; |
| description | | description |
| "IP address"; | | "IP address"; |
| } | | } |
| leaf assigned-number { | | leaf assigned-number { |
| type uint32 { | | type uint32 { |
| range "0..65535" { | | range "0..65535" { |
| description | | description |
| "IP-address:nn (hex or decimal format)"; | | "IP-address:nn (hex or decimal format)"; |
| } | | } |
| } | | } |
| description | | description |
| "IP-address:nn (hex or decimal format)"; | | "IP-address:nn (hex or decimal format)"; |
| } | | } |
| } | | } |
| } | | } |
| container none { | | container none { |
| presence "Indicates a none node is configured."; | | presence "Indicates a none node is configured."; |
| description | | description |
| "Withhold BGP RTs"; | | "Withhold BGP RTs"; |
| } | | } |
| } | | } |
| } | | } |
| leaf table-policy { | | leaf table-policy { |
| type xr:Route-policy-name; | | type xr:Route-policy-name; |
| description | | description |
| "Configure policy for installation of forwarding data to L2FIB"; | | "Configure policy for installation of forwarding data to L2FIB"; |
| } | | } |
| container implicit-import-disable { | | container implicit-import-disable { |
| presence "Indicates a implicit-import-disable node is configured."; | | presence "Indicates a implicit-import-disable node is configured."; |
| description | | description |
| "Disable BGP implicit import"; | | "Disable BGP implicit import"; |
| } | | } |
| container route-policy { | | container route-policy { |
| description | | description |
| "Apply route policy"; | | "Apply route policy"; |
| leaf export { | | leaf export { |
| type xr:Route-policy-name; | | type xr:Route-policy-name; |
| description | | description |
| "Export route policy"; | | "Export route policy"; |
| } | | } |
| leaf import { | | leaf import { |
| type xr:Route-policy-name; | | type xr:Route-policy-name; |
| description | | description |
| "Import route policy"; | | "Import route policy"; |
| } | | } |
| } | | } |
| } | | } |
| leaf description { | | leaf description { |
| type string { | | type string { |
| length "1..64" { | | length "1..64" { |
| description | | description |
| "EVPN Instance description string"; | | "EVPN Instance description string"; |
| } | | } |
| } | | } |
| description | | description |
| "Description for this EVPN Instance"; | | "Description for this EVPN Instance"; |
| } | | } |
| n | | n | container load-balancing { |
| | | presence "Indicates a load-balancing node is configured."; |
| | | description |
| | | "Configure EVPN Instance load-balancing"; |
| | | container flow-label { |
| | | description |
| | | "Flow Label load balancing"; |
| | | container static { |
| | | presence "Indicates a static node is configured."; |
| | | description |
| | | "Static configuration of Flow Label"; |
| | | } |
| | | } |
| | | } |
| container ecmp-disable-deprecated { | | container ecmp-disable-deprecated { |
| presence "Indicates a ecmp-disable-deprecated node is configured."; | | presence "Indicates a ecmp-disable-deprecated node is configured."; |
| description | | description |
| "Deprecated: migrate to <evpn evi N preferrred-nexthop modulo>"; | | "Deprecated: migrate to <evpn evi N preferrred-nexthop modulo>"; |
| } | | } |
| container preferred-nexthop { | | container preferred-nexthop { |
| description | | description |
| "Elect unique active path from ECMP candidate list"; | | "Elect unique active path from ECMP candidate list"; |
| container lowest-ip { | | container lowest-ip { |
| must "not(../highest-ip or ../modulo)"; | | must "not(../highest-ip or ../modulo)"; |
| presence "Indicates a lowest-ip node is configured."; | | presence "Indicates a lowest-ip node is configured."; |
| description | | description |
| "Lowest nexthop IP is active"; | | "Lowest nexthop IP is active"; |
| } | | } |
| container highest-ip { | | container highest-ip { |
| must "not(../lowest-ip or ../modulo)"; | | must "not(../lowest-ip or ../modulo)"; |
| presence "Indicates a highest-ip node is configured."; | | presence "Indicates a highest-ip node is configured."; |
| description | | description |
| "Highest nexthop IP is active"; | | "Highest nexthop IP is active"; |
| } | | } |
| container modulo { | | container modulo { |
| must "not(../lowest-ip or ../highest-ip)"; | | must "not(../lowest-ip or ../highest-ip)"; |
| presence "Indicates a modulo node is configured."; | | presence "Indicates a modulo node is configured."; |
| description | | description |
| "EVI modulo of nexthops cardinality is active"; | | "EVI modulo of nexthops cardinality is active"; |
| } | | } |
| } | | } |
| container advertise-mac { | | container advertise-mac { |
| presence "Indicates a advertise-mac node is configured."; | | presence "Indicates a advertise-mac node is configured."; |
| description | | description |
| "Configure EVPN Instance MAC advertisement"; | | "Configure EVPN Instance MAC advertisement"; |
| container bvi-mac { | | container bvi-mac { |
| presence "Indicates a bvi-mac node is configured."; | | presence "Indicates a bvi-mac node is configured."; |
| description | | description |
| "Advertise local MAC and BVI MAC routes"; | | "Advertise local MAC and BVI MAC routes"; |
| } | | } |
| } | | } |
| container unknown-unicast-suppression { | | container unknown-unicast-suppression { |
| presence "Indicates a unknown-unicast-suppression node is configured."; | | presence "Indicates a unknown-unicast-suppression node is configured."; |
| description | | description |
| "Enabling unknown unicast suppression"; | | "Enabling unknown unicast suppression"; |
| } | | } |
| n | | n | container control-word-disable { |
| | | presence "Indicates a control-word-disable node is configured."; |
| | | description |
| | | "Disabling control-word"; |
| | | } |
| container ignore-mtu-mismatch { | | container ignore-mtu-mismatch { |
| presence "Indicates a ignore-mtu-mismatch node is configured."; | | presence "Indicates a ignore-mtu-mismatch node is configured."; |
| description | | description |
| "Ignore mismatch of local and remote MTUs"; | | "Ignore mismatch of local and remote MTUs"; |
| container disable-deprecated { | | container disable-deprecated { |
| presence "Indicates a disable-deprecated node is configured."; | | presence "Indicates a disable-deprecated node is configured."; |
| description | | description |
| "Disables ingoring mismatch of local and remote MTUs (deprecated)"; | | "Disables ingoring mismatch of local and remote MTUs (deprecated)"; |
| } | | } |
| } | | } |
| container enforce-mtu-match { | | container enforce-mtu-match { |
| presence "Indicates a enforce-mtu-match node is configured."; | | presence "Indicates a enforce-mtu-match node is configured."; |
| description | | description |
| "Enforce matching of local and remote MTUs"; | | "Enforce matching of local and remote MTUs"; |
| } | | } |
| container transmit-mtu-zero { | | container transmit-mtu-zero { |
| presence "Indicates a transmit-mtu-zero node is configured."; | | presence "Indicates a transmit-mtu-zero node is configured."; |
| description | | description |
| "Transmit MTU zero to remote instead of actual local MTU"; | | "Transmit MTU zero to remote instead of actual local MTU"; |
| container disable-deprecated { | | container disable-deprecated { |
| presence "Indicates a disable-deprecated node is configured."; | | presence "Indicates a disable-deprecated node is configured."; |
| description | | description |
| "Disables transmitting MTU zero to remote instead of actual local MTU (deprecated)"; | | "Disables transmitting MTU zero to remote instead of actual local MTU (deprecated)"; |
| } | | } |
| } | | } |
| container transmit-l2-mtu { | | container transmit-l2-mtu { |
| presence "Indicates a transmit-l2-mtu node is configured."; | | presence "Indicates a transmit-l2-mtu node is configured."; |
| description | | description |
| "Transmit L2 MTU of attachment circuit"; | | "Transmit L2 MTU of attachment circuit"; |
| } | | } |
| container re-origination-disable { | | container re-origination-disable { |
| presence "Indicates a re-origination-disable node is configured."; | | presence "Indicates a re-origination-disable node is configured."; |
| description | | description |
| "Disable route re-origination"; | | "Disable route re-origination"; |
| } | | } |
| container vrf { | | container vrf { |
| description | | description |
| "Enable EVPN instance for layer-3 route synchronization."; | | "Enable EVPN instance for layer-3 route synchronization."; |
| container default { | | container default { |
| presence "Indicates a default node is configured."; | | presence "Indicates a default node is configured."; |
| description | | description |
| "EVPN Instance for the default VRF"; | | "EVPN Instance for the default VRF"; |
| } | | } |
| } | | } |
| n | | n | container multicast { |
| | | presence "Indicates a multicast node is configured."; |
| | | description |
| | | "Configure EVPN Instance Multicast"; |
| | | container source-connected { |
| | | presence "Indicates a source-connected node is configured."; |
| | | description |
| | | "Multicast traffic source connected"; |
| | | } |
| | | } |
| | | container proxy { |
| | | presence "Indicates a proxy node is configured."; |
| | | description |
| | | "Configure EVPN Instance Proxy"; |
| | | container igmp-snooping { |
| | | presence "Indicates a igmp-snooping node is configured."; |
| | | description |
| | | "Proxy mode for IGMP-Snooping (selective multicast)"; |
| | | } |
| | | } |
| container etree { | | container etree { |
| presence "Indicates a etree node is configured."; | | presence "Indicates a etree node is configured."; |
| description | | description |
| "Configure EVPN Instance E-Tree"; | | "Configure EVPN Instance E-Tree"; |
| n | | n | container leaf { |
| | | presence "Indicates a leaf node is configured."; |
| | | description |
| | | "Designate EVPN Instance as EVPN E-Tree Leaf Site"; |
| | | } |
| container rt-leaf { | | container rt-leaf { |
| presence "Indicates a rt-leaf node is configured."; | | presence "Indicates a rt-leaf node is configured."; |
| description | | description |
| "Designate EVPN Instance as EVPN E-Tree Route-Target Leaf Site"; | | "Designate EVPN Instance as EVPN E-Tree Route-Target Leaf Site"; |
| } | | } |
| } | | } |
| n | container locators { | n | leaf locator { |
| | | type xr:Cisco-ios-xr-string { |
| | | length "1..58" { |
| | | description |
| | | "Specify locator name"; |
| | | } |
| | | pattern "[a-z0-9A-Z][a-z0-9A-Z_.:]*"; |
| | | } |
| description | | description |
| "EVI locator to use for EVPN SID allocation"; | | "EVI locator to use for EVPN SID allocation"; |
| n | list locator { | n | } |
| key "locator-name"; | | container vpws-single-active-backup-suppression { |
| | | presence "Indicates a vpws-single-active-backup-suppression node is configured."; |
| description | | description |
| "EVI locator to use for EVPN SID allocation"; | | "Disables Non-DF EVI/EAD routes from being advertised in EVPN-VPWS Single-Active. Used for backwards-compatibility."; |
| leaf locator-name { | | |
| type xr:Cisco-ios-xr-string { | | |
| length "1..58" { | | |
| description | | |
| "Specify locator name"; | | |
| } | | |
| pattern "[a-z0-9A-Z][a-z0-9A-Z_.:]*"; | | |
| } | | |
| description | | |
| "EVI locator to use for EVPN SID allocation"; | | |
| } | | |
| container usid { | | |
| description | | |
| "Configure the uSID wide function knob"; | | |
| container allocation { | | |
| description | | |
| "Set the allocation types associated with uSID"; | | |
| container wide-local-id-block { | | |
| presence "Indicates a wide-local-id-block node is configured."; | | |
| description | | |
| "Enable uSID wide function knob for the locator"; | | |
| } | | |
| } | | |
| } | | |
| } | | |
| } | | } |
| container bvi-coupled-mode { | | container bvi-coupled-mode { |
| presence "Indicates a bvi-coupled-mode node is configured."; | | presence "Indicates a bvi-coupled-mode node is configured."; |
| description | | description |
| "Couples BVI state to the core EVPN Instance state"; | | "Couples BVI state to the core EVPN Instance state"; |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| container segment-routing-srv6-stitching { | | container segment-routing-srv6-stitching { |
| if-feature "l2vpn_platform_srv6_supported"; | | if-feature "l2vpn_platform_srv6_supported"; |
| description | | description |
| "Configure Segment Routing EVPN Instance with SRv6 stitching"; | | "Configure Segment Routing EVPN Instance with SRv6 stitching"; |
| list evi { | | list evi { |
| key "vpn-id"; | | key "vpn-id"; |
| description | | description |
| "Configure EVPN Instance VPN ID"; | | "Configure EVPN Instance VPN ID"; |
| leaf vpn-id { | | leaf vpn-id { |
| type uint32 { | | type uint32 { |
| range "1..65534" { | | range "1..65534" { |
| description | | description |
| "EVPN Instance VPN ID value"; | | "EVPN Instance VPN ID value"; |
| } | | } |
| } | | } |
| description | | description |
| "Configure EVPN Instance VPN ID"; | | "Configure EVPN Instance VPN ID"; |
| } | | } |
| container bgp { | | container bgp { |
| presence "Indicates a bgp node is configured."; | | presence "Indicates a bgp node is configured."; |
| description | | description |
| "Configure BGP"; | | "Configure BGP"; |
| container rd { | | container rd { |
| description | | description |
| "Set the Route Distinguisher"; | | "Set the Route Distinguisher"; |
| leaf two-byte-as-number { | | leaf two-byte-as-number { |
| type uint32 { | | type uint32 { |
| range "1..65535" { | | range "1..65535" { |
| description | | description |
| "Two Byte AS Number"; | | "Two Byte AS Number"; |
| } | | } |
| } | | } |
| n | must "not(../four-byte-as-number or ../ipv4-address) and ../two-byte-as-assigned-number"; | n | must "not(../four-byte-as-number or ../ipv4-address)"; |
| description | | description |
| "Two Byte AS Number"; | | "Two Byte AS Number"; |
| } | | } |
| leaf two-byte-as-assigned-number { | | leaf two-byte-as-assigned-number { |
| type uint32 { | | type uint32 { |
| range "0..4294967295" { | | range "0..4294967295" { |
| description | | description |
| "AS:nn (hex or decimal format)"; | | "AS:nn (hex or decimal format)"; |
| } | | } |
| } | | } |
| must "../two-byte-as-number"; | | must "../two-byte-as-number"; |
| description | | description |
| "AS:nn (hex or decimal format)"; | | "AS:nn (hex or decimal format)"; |
| } | | } |
| leaf four-byte-as-number { | | leaf four-byte-as-number { |
| type uint32 { | | type uint32 { |
| range "65536..4294967295" { | | range "65536..4294967295" { |
| description | | description |
| "Four Byte AS number"; | | "Four Byte AS number"; |
| } | | } |
| } | | } |
| n | must "not(../two-byte-as-number or ../ipv4-address) and ../four-byte-as-assigned-number"; | n | must "not(../two-byte-as-number or ../ipv4-address)"; |
| description | | description |
| "Four Byte AS number"; | | "Four Byte AS number"; |
| } | | } |
| leaf four-byte-as-assigned-number { | | leaf four-byte-as-assigned-number { |
| type uint32 { | | type uint32 { |
| range "0..65535" { | | range "0..65535" { |
| description | | description |
| "AS:nn (hex or decimal format)"; | | "AS:nn (hex or decimal format)"; |
| } | | } |
| } | | } |
| must "../four-byte-as-number"; | | must "../four-byte-as-number"; |
| description | | description |
| "AS:nn (hex or decimal format)"; | | "AS:nn (hex or decimal format)"; |
| } | | } |
| leaf ipv4-address { | | leaf ipv4-address { |
| type inet:ipv4-address-no-zone; | | type inet:ipv4-address-no-zone; |
| n | must "not(../two-byte-as-number or ../four-byte-as-number) and ../ipv4-address-assigned-number"; | n | must "not(../two-byte-as-number or ../four-byte-as-number)"; |
| description | | description |
| "IP address"; | | "IP address"; |
| } | | } |
| leaf ipv4-address-assigned-number { | | leaf ipv4-address-assigned-number { |
| type uint32 { | | type uint32 { |
| range "0..65535" { | | range "0..65535" { |
| description | | description |
| "IP-address:nn (hex or decimal format)"; | | "IP-address:nn (hex or decimal format)"; |
| } | | } |
| } | | } |
| must "../ipv4-address"; | | must "../ipv4-address"; |
| description | | description |
| "IP-address:nn (hex or decimal format)"; | | "IP-address:nn (hex or decimal format)"; |
| } | | } |
| } | | } |
| container route-target { | | container route-target { |
| description | | description |
| "Set the Route Target"; | | "Set the Route Target"; |
| container two-byte-as-rts { | | container two-byte-as-rts { |
| description | | description |
| "Two Byte AS Number Route Target"; | | "Two Byte AS Number Route Target"; |
| list two-byte-as-rt { | | list two-byte-as-rt { |
| key "two-byte-as-number assigned-number"; | | key "two-byte-as-number assigned-number"; |
| description | | description |
| "Two Byte AS Number Route Target"; | | "Two Byte AS Number Route Target"; |
| leaf two-byte-as-number { | | leaf two-byte-as-number { |
| type uint32 { | | type uint32 { |
| range "1..65535"; | | range "1..65535"; |
| } | | } |
| description | | description |
| "Two Byte AS Number"; | | "Two Byte AS Number"; |
| } | | } |
| leaf assigned-number { | | leaf assigned-number { |
| type uint32 { | | type uint32 { |
| range "0..4294967295" { | | range "0..4294967295" { |
| description | | description |
| "AS:nn (hex or decimal format)"; | | "AS:nn (hex or decimal format)"; |
| } | | } |
| } | | } |
| description | | description |
| "AS:nn (hex or decimal format)"; | | "AS:nn (hex or decimal format)"; |
| } | | } |
| } | | } |
| } | | } |
| container four-byte-as-rts { | | container four-byte-as-rts { |
| description | | description |
| "Four Byte AS number Route Target"; | | "Four Byte AS number Route Target"; |
| list four-byte-as-rt { | | list four-byte-as-rt { |
| key "four-byte-as-number assigned-number"; | | key "four-byte-as-number assigned-number"; |
| description | | description |
| "Four Byte AS number Route Target"; | | "Four Byte AS number Route Target"; |
| leaf four-byte-as-number { | | leaf four-byte-as-number { |
| type uint32 { | | type uint32 { |
| range "65536..4294967295"; | | range "65536..4294967295"; |
| } | | } |
| description | | description |
| "Four Byte AS number"; | | "Four Byte AS number"; |
| } | | } |
| leaf assigned-number { | | leaf assigned-number { |
| type uint32 { | | type uint32 { |
| range "0..65535" { | | range "0..65535" { |
| description | | description |
| "AS:nn (hex or decimal format)"; | | "AS:nn (hex or decimal format)"; |
| } | | } |
| } | | } |
| description | | description |
| "AS:nn (hex or decimal format)"; | | "AS:nn (hex or decimal format)"; |
| } | | } |
| } | | } |
| } | | } |
| container ipv4-address-rts { | | container ipv4-address-rts { |
| description | | description |
| "IP address Route Target"; | | "IP address Route Target"; |
| list ipv4-address-rt { | | list ipv4-address-rt { |
| key "ipv4-address assigned-number"; | | key "ipv4-address assigned-number"; |
| description | | description |
| "IP address"; | | "IP address"; |
| leaf ipv4-address { | | leaf ipv4-address { |
| type inet:ipv4-address-no-zone; | | type inet:ipv4-address-no-zone; |
| description | | description |
| "IP address"; | | "IP address"; |
| } | | } |
| leaf assigned-number { | | leaf assigned-number { |
| type uint32 { | | type uint32 { |
| range "0..65535" { | | range "0..65535" { |
| description | | description |
| "IP-address:nn (hex or decimal format)"; | | "IP-address:nn (hex or decimal format)"; |
| } | | } |
| } | | } |
| description | | description |
| "IP-address:nn (hex or decimal format)"; | | "IP-address:nn (hex or decimal format)"; |
| } | | } |
| } | | } |
| } | | } |
| container none { | | container none { |
| presence "Indicates a none node is configured."; | | presence "Indicates a none node is configured."; |
| description | | description |
| "Withhold BGP RTs"; | | "Withhold BGP RTs"; |
| } | | } |
| container import { | | container import { |
| description | | description |
| "Import Route Target"; | | "Import Route Target"; |
| container two-byte-as-rts { | | container two-byte-as-rts { |
| description | | description |
| "Two Byte AS Number Route Target"; | | "Two Byte AS Number Route Target"; |
| list two-byte-as-rt { | | list two-byte-as-rt { |
| key "two-byte-as-number assigned-number"; | | key "two-byte-as-number assigned-number"; |
| description | | description |
| "Two Byte AS Number Route Target"; | | "Two Byte AS Number Route Target"; |
| leaf two-byte-as-number { | | leaf two-byte-as-number { |
| type uint32 { | | type uint32 { |
| range "1..65535"; | | range "1..65535"; |
| } | | } |
| description | | description |
| "Two Byte AS Number"; | | "Two Byte AS Number"; |
| } | | } |
| leaf assigned-number { | | leaf assigned-number { |
| type uint32 { | | type uint32 { |
| range "0..4294967295" { | | range "0..4294967295" { |
| description | | description |
| "AS:nn (hex or decimal format)"; | | "AS:nn (hex or decimal format)"; |
| } | | } |
| } | | } |
| description | | description |
| "AS:nn (hex or decimal format)"; | | "AS:nn (hex or decimal format)"; |
| } | | } |
| } | | } |
| } | | } |
| container four-byte-as-rts { | | container four-byte-as-rts { |
| description | | description |
| "Four Byte AS number Route Target"; | | "Four Byte AS number Route Target"; |
| list four-byte-as-rt { | | list four-byte-as-rt { |
| key "four-byte-as-number assigned-number"; | | key "four-byte-as-number assigned-number"; |
| description | | description |
| "Four Byte AS number Route Target"; | | "Four Byte AS number Route Target"; |
| leaf four-byte-as-number { | | leaf four-byte-as-number { |
| type uint32 { | | type uint32 { |
| range "65536..4294967295"; | | range "65536..4294967295"; |
| } | | } |
| description | | description |
| "Four Byte AS number"; | | "Four Byte AS number"; |
| } | | } |
| leaf assigned-number { | | leaf assigned-number { |
| type uint32 { | | type uint32 { |
| range "0..65535" { | | range "0..65535" { |
| description | | description |
| "AS:nn (hex or decimal format)"; | | "AS:nn (hex or decimal format)"; |
| } | | } |
| } | | } |
| description | | description |
| "AS:nn (hex or decimal format)"; | | "AS:nn (hex or decimal format)"; |
| } | | } |
| } | | } |
| } | | } |
| container ipv4-address-rts { | | container ipv4-address-rts { |
| description | | description |
| "IP address Route Target"; | | "IP address Route Target"; |
| list ipv4-address-rt { | | list ipv4-address-rt { |
| key "ipv4-address assigned-number"; | | key "ipv4-address assigned-number"; |
| description | | description |
| "IP address"; | | "IP address"; |
| leaf ipv4-address { | | leaf ipv4-address { |
| type inet:ipv4-address-no-zone; | | type inet:ipv4-address-no-zone; |
| description | | description |
| "IP address"; | | "IP address"; |
| } | | } |
| leaf assigned-number { | | leaf assigned-number { |
| type uint32 { | | type uint32 { |
| range "0..65535" { | | range "0..65535" { |
| description | | description |
| "IP-address:nn (hex or decimal format)"; | | "IP-address:nn (hex or decimal format)"; |
| } | | } |
| } | | } |
| description | | description |
| "IP-address:nn (hex or decimal format)"; | | "IP-address:nn (hex or decimal format)"; |
| } | | } |
| } | | } |
| } | | } |
| container none { | | container none { |
| presence "Indicates a none node is configured."; | | presence "Indicates a none node is configured."; |
| description | | description |
| "Withhold BGP RTs"; | | "Withhold BGP RTs"; |
| } | | } |
| } | | } |
| container export { | | container export { |
| description | | description |
| "Export Route Target"; | | "Export Route Target"; |
| container two-byte-as-rts { | | container two-byte-as-rts { |
| description | | description |
| "Two Byte AS Number Route Target"; | | "Two Byte AS Number Route Target"; |
| list two-byte-as-rt { | | list two-byte-as-rt { |
| key "two-byte-as-number assigned-number"; | | key "two-byte-as-number assigned-number"; |
| description | | description |
| "Two Byte AS Number Route Target"; | | "Two Byte AS Number Route Target"; |
| leaf two-byte-as-number { | | leaf two-byte-as-number { |
| type uint32 { | | type uint32 { |
| range "1..65535"; | | range "1..65535"; |
| } | | } |
| description | | description |
| "Two Byte AS Number"; | | "Two Byte AS Number"; |
| } | | } |
| leaf assigned-number { | | leaf assigned-number { |
| type uint32 { | | type uint32 { |
| range "0..4294967295" { | | range "0..4294967295" { |
| description | | description |
| "AS:nn (hex or decimal format)"; | | "AS:nn (hex or decimal format)"; |
| } | | } |
| } | | } |
| description | | description |
| "AS:nn (hex or decimal format)"; | | "AS:nn (hex or decimal format)"; |
| } | | } |
| } | | } |
| } | | } |
| container four-byte-as-rts { | | container four-byte-as-rts { |
| description | | description |
| "Four Byte AS number Route Target"; | | "Four Byte AS number Route Target"; |
| list four-byte-as-rt { | | list four-byte-as-rt { |
| key "four-byte-as-number assigned-number"; | | key "four-byte-as-number assigned-number"; |
| description | | description |
| "Four Byte AS number Route Target"; | | "Four Byte AS number Route Target"; |
| leaf four-byte-as-number { | | leaf four-byte-as-number { |
| type uint32 { | | type uint32 { |
| range "65536..4294967295"; | | range "65536..4294967295"; |
| } | | } |
| description | | description |
| "Four Byte AS number"; | | "Four Byte AS number"; |
| } | | } |
| leaf assigned-number { | | leaf assigned-number { |
| type uint32 { | | type uint32 { |
| range "0..65535" { | | range "0..65535" { |
| description | | description |
| "AS:nn (hex or decimal format)"; | | "AS:nn (hex or decimal format)"; |
| } | | } |
| } | | } |
| description | | description |
| "AS:nn (hex or decimal format)"; | | "AS:nn (hex or decimal format)"; |
| } | | } |
| } | | } |
| } | | } |
| container ipv4-address-rts { | | container ipv4-address-rts { |
| description | | description |
| "IP address Route Target"; | | "IP address Route Target"; |
| list ipv4-address-rt { | | list ipv4-address-rt { |
| key "ipv4-address assigned-number"; | | key "ipv4-address assigned-number"; |
| description | | description |
| "IP address"; | | "IP address"; |
| leaf ipv4-address { | | leaf ipv4-address { |
| type inet:ipv4-address-no-zone; | | type inet:ipv4-address-no-zone; |
| description | | description |
| "IP address"; | | "IP address"; |
| } | | } |
| leaf assigned-number { | | leaf assigned-number { |
| type uint32 { | | type uint32 { |
| range "0..65535" { | | range "0..65535" { |
| description | | description |
| "IP-address:nn (hex or decimal format)"; | | "IP-address:nn (hex or decimal format)"; |
| } | | } |
| } | | } |
| description | | description |
| "IP-address:nn (hex or decimal format)"; | | "IP-address:nn (hex or decimal format)"; |
| } | | } |
| } | | } |
| } | | } |
| container none { | | container none { |
| presence "Indicates a none node is configured."; | | presence "Indicates a none node is configured."; |
| description | | description |
| "Withhold BGP RTs"; | | "Withhold BGP RTs"; |
| } | | } |
| } | | } |
| } | | } |
| leaf table-policy { | | leaf table-policy { |
| type xr:Route-policy-name; | | type xr:Route-policy-name; |
| description | | description |
| "Configure policy for installation of forwarding data to L2FIB"; | | "Configure policy for installation of forwarding data to L2FIB"; |
| } | | } |
| container implicit-import-disable { | | container implicit-import-disable { |
| presence "Indicates a implicit-import-disable node is configured."; | | presence "Indicates a implicit-import-disable node is configured."; |
| description | | description |
| "Disable BGP implicit import"; | | "Disable BGP implicit import"; |
| } | | } |
| container route-policy { | | container route-policy { |
| description | | description |
| "Apply route policy"; | | "Apply route policy"; |
| leaf export { | | leaf export { |
| type xr:Route-policy-name; | | type xr:Route-policy-name; |
| description | | description |
| "Export route policy"; | | "Export route policy"; |
| } | | } |
| leaf import { | | leaf import { |
| type xr:Route-policy-name; | | type xr:Route-policy-name; |
| description | | description |
| "Import route policy"; | | "Import route policy"; |
| } | | } |
| } | | } |
| } | | } |
| leaf description { | | leaf description { |
| type string { | | type string { |
| length "1..1024" { | | length "1..1024" { |
| description | | description |
| "EVPN Instance description string"; | | "EVPN Instance description string"; |
| } | | } |
| } | | } |
| description | | description |
| "Description for this EVPN Instance"; | | "Description for this EVPN Instance"; |
| } | | } |
| container preferred-nexthop { | | container preferred-nexthop { |
| description | | description |
| "Elect unique active path from ECMP candidate list"; | | "Elect unique active path from ECMP candidate list"; |
| container lowest-ip { | | container lowest-ip { |
| must "not(../highest-ip or ../modulo)"; | | must "not(../highest-ip or ../modulo)"; |
| presence "Indicates a lowest-ip node is configured."; | | presence "Indicates a lowest-ip node is configured."; |
| description | | description |
| "Lowest nexthop IP is active"; | | "Lowest nexthop IP is active"; |
| } | | } |
| container highest-ip { | | container highest-ip { |
| must "not(../lowest-ip or ../modulo)"; | | must "not(../lowest-ip or ../modulo)"; |
| presence "Indicates a highest-ip node is configured."; | | presence "Indicates a highest-ip node is configured."; |
| description | | description |
| "Highest nexthop IP is active"; | | "Highest nexthop IP is active"; |
| } | | } |
| container modulo { | | container modulo { |
| must "not(../lowest-ip or ../highest-ip)"; | | must "not(../lowest-ip or ../highest-ip)"; |
| presence "Indicates a modulo node is configured."; | | presence "Indicates a modulo node is configured."; |
| description | | description |
| "EVI modulo of nexthops cardinality is active"; | | "EVI modulo of nexthops cardinality is active"; |
| } | | } |
| } | | } |
| container advertise-mac { | | container advertise-mac { |
| presence "Indicates a advertise-mac node is configured."; | | presence "Indicates a advertise-mac node is configured."; |
| description | | description |
| "Configure locally-learned MAC advertisement"; | | "Configure locally-learned MAC advertisement"; |
| container bvi-mac { | | container bvi-mac { |
| presence "Indicates a bvi-mac node is configured."; | | presence "Indicates a bvi-mac node is configured."; |
| description | | description |
| "Advertise local MAC and BVI MAC routes"; | | "Advertise local MAC and BVI MAC routes"; |
| } | | } |
| } | | } |
| container unknown-unicast-suppression { | | container unknown-unicast-suppression { |
| presence "Indicates a unknown-unicast-suppression node is configured."; | | presence "Indicates a unknown-unicast-suppression node is configured."; |
| description | | description |
| "Enabling unknown unicast suppression"; | | "Enabling unknown unicast suppression"; |
| } | | } |
| container ignore-mtu-mismatch { | | container ignore-mtu-mismatch { |
| presence "Indicates a ignore-mtu-mismatch node is configured."; | | presence "Indicates a ignore-mtu-mismatch node is configured."; |
| description | | description |
| "Ignore mismatch of local and remote MTUs"; | | "Ignore mismatch of local and remote MTUs"; |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Disables ingoring mismatch of local and remote MTUs"; | | "Disables ingoring mismatch of local and remote MTUs"; |
| } | | } |
| } | | } |
| container transmit-mtu-zero { | | container transmit-mtu-zero { |
| presence "Indicates a transmit-mtu-zero node is configured."; | | presence "Indicates a transmit-mtu-zero node is configured."; |
| description | | description |
| "Transmit MTU zero to remote instead of actual local MTU"; | | "Transmit MTU zero to remote instead of actual local MTU"; |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Disables transmitting MTU zero to remote instead of actual local MTU"; | | "Disables transmitting MTU zero to remote instead of actual local MTU"; |
| } | | } |
| } | | } |
| container re-origination-disable { | | container re-origination-disable { |
| presence "Indicates a re-origination-disable node is configured."; | | presence "Indicates a re-origination-disable node is configured."; |
| description | | description |
| "Disable route re-origination"; | | "Disable route re-origination"; |
| } | | } |
| leaf locator { | | leaf locator { |
| type xr:Cisco-ios-xr-string { | | type xr:Cisco-ios-xr-string { |
| length "1..58" { | | length "1..58" { |
| description | | description |
| "Specify locator name"; | | "Specify locator name"; |
| } | | } |
| pattern "[a-z0-9A-Z][a-z0-9A-Z_.:]*"; | | pattern "[a-z0-9A-Z][a-z0-9A-Z_.:]*"; |
| } | | } |
| description | | description |
| "EVI locator to use for EVPN SID allocation"; | | "EVI locator to use for EVPN SID allocation"; |
| } | | } |
| } | | } |
| } | | } |
| container stitching { | | container stitching { |
| description | | description |
| "Treat EVPN Instance as Stitching side"; | | "Treat EVPN Instance as Stitching side"; |
| list evi { | | list evi { |
| key "vpn-id"; | | key "vpn-id"; |
| description | | description |
| "Configure EVPN Instance VPN ID"; | | "Configure EVPN Instance VPN ID"; |
| leaf vpn-id { | | leaf vpn-id { |
| type uint32 { | | type uint32 { |
| range "1..65534" { | | range "1..65534" { |
| description | | description |
| "EVPN Instance VPN ID value"; | | "EVPN Instance VPN ID value"; |
| } | | } |
| } | | } |
| description | | description |
| "Configure EVPN Instance VPN ID"; | | "Configure EVPN Instance VPN ID"; |
| } | | } |
| container bgp { | | container bgp { |
| presence "Indicates a bgp node is configured."; | | presence "Indicates a bgp node is configured."; |
| description | | description |
| "Configure BGP"; | | "Configure BGP"; |
| container rd { | | container rd { |
| description | | description |
| "Set the Route Distinguisher"; | | "Set the Route Distinguisher"; |
| leaf two-byte-as-number { | | leaf two-byte-as-number { |
| type uint32 { | | type uint32 { |
| range "1..65535" { | | range "1..65535" { |
| description | | description |
| "Two Byte AS Number"; | | "Two Byte AS Number"; |
| } | | } |
| } | | } |
| n | must "not(../four-byte-as-number or ../ipv4-address) and ../two-byte-as-assigned-number"; | n | must "not(../four-byte-as-number or ../ipv4-address)"; |
| description | | description |
| "Two Byte AS Number"; | | "Two Byte AS Number"; |
| } | | } |
| leaf two-byte-as-assigned-number { | | leaf two-byte-as-assigned-number { |
| type uint32 { | | type uint32 { |
| range "0..4294967295" { | | range "0..4294967295" { |
| description | | description |
| "AS:nn (hex or decimal format)"; | | "AS:nn (hex or decimal format)"; |
| } | | } |
| } | | } |
| must "../two-byte-as-number"; | | must "../two-byte-as-number"; |
| description | | description |
| "AS:nn (hex or decimal format)"; | | "AS:nn (hex or decimal format)"; |
| } | | } |
| leaf four-byte-as-number { | | leaf four-byte-as-number { |
| type uint32 { | | type uint32 { |
| range "65536..4294967295" { | | range "65536..4294967295" { |
| description | | description |
| "Four Byte AS number"; | | "Four Byte AS number"; |
| } | | } |
| } | | } |
| n | must "not(../two-byte-as-number or ../ipv4-address) and ../four-byte-as-assigned-number"; | n | must "not(../two-byte-as-number or ../ipv4-address)"; |
| description | | description |
| "Four Byte AS number"; | | "Four Byte AS number"; |
| } | | } |
| leaf four-byte-as-assigned-number { | | leaf four-byte-as-assigned-number { |
| type uint32 { | | type uint32 { |
| range "0..65535" { | | range "0..65535" { |
| description | | description |
| "AS:nn (hex or decimal format)"; | | "AS:nn (hex or decimal format)"; |
| } | | } |
| } | | } |
| must "../four-byte-as-number"; | | must "../four-byte-as-number"; |
| description | | description |
| "AS:nn (hex or decimal format)"; | | "AS:nn (hex or decimal format)"; |
| } | | } |
| leaf ipv4-address { | | leaf ipv4-address { |
| type inet:ipv4-address-no-zone; | | type inet:ipv4-address-no-zone; |
| n | must "not(../two-byte-as-number or ../four-byte-as-number) and ../ipv4-address-assigned-number"; | n | must "not(../two-byte-as-number or ../four-byte-as-number)"; |
| description | | description |
| "IP address"; | | "IP address"; |
| } | | } |
| leaf ipv4-address-assigned-number { | | leaf ipv4-address-assigned-number { |
| type uint32 { | | type uint32 { |
| range "0..65535" { | | range "0..65535" { |
| description | | description |
| "IP-address:nn (hex or decimal format)"; | | "IP-address:nn (hex or decimal format)"; |
| } | | } |
| } | | } |
| must "../ipv4-address"; | | must "../ipv4-address"; |
| description | | description |
| "IP-address:nn (hex or decimal format)"; | | "IP-address:nn (hex or decimal format)"; |
| } | | } |
| } | | } |
| container route-target { | | container route-target { |
| description | | description |
| "Set the Route Target"; | | "Set the Route Target"; |
| container two-byte-as-rts { | | container two-byte-as-rts { |
| description | | description |
| "Two Byte AS Number Route Target"; | | "Two Byte AS Number Route Target"; |
| list two-byte-as-rt { | | list two-byte-as-rt { |
| key "two-byte-as-number assigned-number"; | | key "two-byte-as-number assigned-number"; |
| description | | description |
| "Two Byte AS Number Route Target"; | | "Two Byte AS Number Route Target"; |
| leaf two-byte-as-number { | | leaf two-byte-as-number { |
| type uint32 { | | type uint32 { |
| range "1..65535"; | | range "1..65535"; |
| } | | } |
| description | | description |
| "Two Byte AS Number"; | | "Two Byte AS Number"; |
| } | | } |
| leaf assigned-number { | | leaf assigned-number { |
| type uint32 { | | type uint32 { |
| range "0..4294967295" { | | range "0..4294967295" { |
| description | | description |
| "AS:nn (hex or decimal format)"; | | "AS:nn (hex or decimal format)"; |
| } | | } |
| } | | } |
| description | | description |
| "AS:nn (hex or decimal format)"; | | "AS:nn (hex or decimal format)"; |
| } | | } |
| } | | } |
| } | | } |
| container four-byte-as-rts { | | container four-byte-as-rts { |
| description | | description |
| "Four Byte AS number Route Target"; | | "Four Byte AS number Route Target"; |
| list four-byte-as-rt { | | list four-byte-as-rt { |
| key "four-byte-as-number assigned-number"; | | key "four-byte-as-number assigned-number"; |
| description | | description |
| "Four Byte AS number Route Target"; | | "Four Byte AS number Route Target"; |
| leaf four-byte-as-number { | | leaf four-byte-as-number { |
| type uint32 { | | type uint32 { |
| range "65536..4294967295"; | | range "65536..4294967295"; |
| } | | } |
| description | | description |
| "Four Byte AS number"; | | "Four Byte AS number"; |
| } | | } |
| leaf assigned-number { | | leaf assigned-number { |
| type uint32 { | | type uint32 { |
| range "0..65535" { | | range "0..65535" { |
| description | | description |
| "AS:nn (hex or decimal format)"; | | "AS:nn (hex or decimal format)"; |
| } | | } |
| } | | } |
| description | | description |
| "AS:nn (hex or decimal format)"; | | "AS:nn (hex or decimal format)"; |
| } | | } |
| } | | } |
| } | | } |
| container ipv4-address-rts { | | container ipv4-address-rts { |
| description | | description |
| "IP address Route Target"; | | "IP address Route Target"; |
| list ipv4-address-rt { | | list ipv4-address-rt { |
| key "ipv4-address assigned-number"; | | key "ipv4-address assigned-number"; |
| description | | description |
| "IP address"; | | "IP address"; |
| leaf ipv4-address { | | leaf ipv4-address { |
| type inet:ipv4-address-no-zone; | | type inet:ipv4-address-no-zone; |
| description | | description |
| "IP address"; | | "IP address"; |
| } | | } |
| leaf assigned-number { | | leaf assigned-number { |
| type uint32 { | | type uint32 { |
| range "0..65535" { | | range "0..65535" { |
| description | | description |
| "IP-address:nn (hex or decimal format)"; | | "IP-address:nn (hex or decimal format)"; |
| } | | } |
| } | | } |
| description | | description |
| "IP-address:nn (hex or decimal format)"; | | "IP-address:nn (hex or decimal format)"; |
| } | | } |
| } | | } |
| } | | } |
| container none { | | container none { |
| presence "Indicates a none node is configured."; | | presence "Indicates a none node is configured."; |
| description | | description |
| "Withhold BGP RTs"; | | "Withhold BGP RTs"; |
| } | | } |
| container import { | | container import { |
| description | | description |
| "Import Route Target"; | | "Import Route Target"; |
| container two-byte-as-rts { | | container two-byte-as-rts { |
| description | | description |
| "Two Byte AS Number Route Target"; | | "Two Byte AS Number Route Target"; |
| list two-byte-as-rt { | | list two-byte-as-rt { |
| key "two-byte-as-number assigned-number"; | | key "two-byte-as-number assigned-number"; |
| description | | description |
| "Two Byte AS Number Route Target"; | | "Two Byte AS Number Route Target"; |
| leaf two-byte-as-number { | | leaf two-byte-as-number { |
| type uint32 { | | type uint32 { |
| range "1..65535"; | | range "1..65535"; |
| } | | } |
| description | | description |
| "Two Byte AS Number"; | | "Two Byte AS Number"; |
| } | | } |
| leaf assigned-number { | | leaf assigned-number { |
| type uint32 { | | type uint32 { |
| range "0..4294967295" { | | range "0..4294967295" { |
| description | | description |
| "AS:nn (hex or decimal format)"; | | "AS:nn (hex or decimal format)"; |
| } | | } |
| } | | } |
| description | | description |
| "AS:nn (hex or decimal format)"; | | "AS:nn (hex or decimal format)"; |
| } | | } |
| } | | } |
| } | | } |
| container four-byte-as-rts { | | container four-byte-as-rts { |
| description | | description |
| "Four Byte AS number Route Target"; | | "Four Byte AS number Route Target"; |
| list four-byte-as-rt { | | list four-byte-as-rt { |
| key "four-byte-as-number assigned-number"; | | key "four-byte-as-number assigned-number"; |
| description | | description |
| "Four Byte AS number Route Target"; | | "Four Byte AS number Route Target"; |
| leaf four-byte-as-number { | | leaf four-byte-as-number { |
| type uint32 { | | type uint32 { |
| range "65536..4294967295"; | | range "65536..4294967295"; |
| } | | } |
| description | | description |
| "Four Byte AS number"; | | "Four Byte AS number"; |
| } | | } |
| leaf assigned-number { | | leaf assigned-number { |
| type uint32 { | | type uint32 { |
| range "0..65535" { | | range "0..65535" { |
| description | | description |
| "AS:nn (hex or decimal format)"; | | "AS:nn (hex or decimal format)"; |
| } | | } |
| } | | } |
| description | | description |
| "AS:nn (hex or decimal format)"; | | "AS:nn (hex or decimal format)"; |
| } | | } |
| } | | } |
| } | | } |
| container ipv4-address-rts { | | container ipv4-address-rts { |
| description | | description |
| "IP address Route Target"; | | "IP address Route Target"; |
| list ipv4-address-rt { | | list ipv4-address-rt { |
| key "ipv4-address assigned-number"; | | key "ipv4-address assigned-number"; |
| description | | description |
| "IP address"; | | "IP address"; |
| leaf ipv4-address { | | leaf ipv4-address { |
| type inet:ipv4-address-no-zone; | | type inet:ipv4-address-no-zone; |
| description | | description |
| "IP address"; | | "IP address"; |
| } | | } |
| leaf assigned-number { | | leaf assigned-number { |
| type uint32 { | | type uint32 { |
| range "0..65535" { | | range "0..65535" { |
| description | | description |
| "IP-address:nn (hex or decimal format)"; | | "IP-address:nn (hex or decimal format)"; |
| } | | } |
| } | | } |
| description | | description |
| "IP-address:nn (hex or decimal format)"; | | "IP-address:nn (hex or decimal format)"; |
| } | | } |
| } | | } |
| } | | } |
| container none { | | container none { |
| presence "Indicates a none node is configured."; | | presence "Indicates a none node is configured."; |
| description | | description |
| "Withhold BGP RTs"; | | "Withhold BGP RTs"; |
| } | | } |
| } | | } |
| container export { | | container export { |
| description | | description |
| "Export Route Target"; | | "Export Route Target"; |
| container two-byte-as-rts { | | container two-byte-as-rts { |
| description | | description |
| "Two Byte AS Number Route Target"; | | "Two Byte AS Number Route Target"; |
| list two-byte-as-rt { | | list two-byte-as-rt { |
| key "two-byte-as-number assigned-number"; | | key "two-byte-as-number assigned-number"; |
| description | | description |
| "Two Byte AS Number Route Target"; | | "Two Byte AS Number Route Target"; |
| leaf two-byte-as-number { | | leaf two-byte-as-number { |
| type uint32 { | | type uint32 { |
| range "1..65535"; | | range "1..65535"; |
| } | | } |
| description | | description |
| "Two Byte AS Number"; | | "Two Byte AS Number"; |
| } | | } |
| leaf assigned-number { | | leaf assigned-number { |
| type uint32 { | | type uint32 { |
| range "0..4294967295" { | | range "0..4294967295" { |
| description | | description |
| "AS:nn (hex or decimal format)"; | | "AS:nn (hex or decimal format)"; |
| } | | } |
| } | | } |
| description | | description |
| "AS:nn (hex or decimal format)"; | | "AS:nn (hex or decimal format)"; |
| } | | } |
| } | | } |
| } | | } |
| container four-byte-as-rts { | | container four-byte-as-rts { |
| description | | description |
| "Four Byte AS number Route Target"; | | "Four Byte AS number Route Target"; |
| list four-byte-as-rt { | | list four-byte-as-rt { |
| key "four-byte-as-number assigned-number"; | | key "four-byte-as-number assigned-number"; |
| description | | description |
| "Four Byte AS number Route Target"; | | "Four Byte AS number Route Target"; |
| leaf four-byte-as-number { | | leaf four-byte-as-number { |
| type uint32 { | | type uint32 { |
| range "65536..4294967295"; | | range "65536..4294967295"; |
| } | | } |
| description | | description |
| "Four Byte AS number"; | | "Four Byte AS number"; |
| } | | } |
| leaf assigned-number { | | leaf assigned-number { |
| type uint32 { | | type uint32 { |
| range "0..65535" { | | range "0..65535" { |
| description | | description |
| "AS:nn (hex or decimal format)"; | | "AS:nn (hex or decimal format)"; |
| } | | } |
| } | | } |
| description | | description |
| "AS:nn (hex or decimal format)"; | | "AS:nn (hex or decimal format)"; |
| } | | } |
| } | | } |
| } | | } |
| container ipv4-address-rts { | | container ipv4-address-rts { |
| description | | description |
| "IP address Route Target"; | | "IP address Route Target"; |
| list ipv4-address-rt { | | list ipv4-address-rt { |
| key "ipv4-address assigned-number"; | | key "ipv4-address assigned-number"; |
| description | | description |
| "IP address"; | | "IP address"; |
| leaf ipv4-address { | | leaf ipv4-address { |
| type inet:ipv4-address-no-zone; | | type inet:ipv4-address-no-zone; |
| description | | description |
| "IP address"; | | "IP address"; |
| } | | } |
| leaf assigned-number { | | leaf assigned-number { |
| type uint32 { | | type uint32 { |
| range "0..65535" { | | range "0..65535" { |
| description | | description |
| "IP-address:nn (hex or decimal format)"; | | "IP-address:nn (hex or decimal format)"; |
| } | | } |
| } | | } |
| description | | description |
| "IP-address:nn (hex or decimal format)"; | | "IP-address:nn (hex or decimal format)"; |
| } | | } |
| } | | } |
| } | | } |
| container none { | | container none { |
| presence "Indicates a none node is configured."; | | presence "Indicates a none node is configured."; |
| description | | description |
| "Withhold BGP RTs"; | | "Withhold BGP RTs"; |
| } | | } |
| } | | } |
| } | | } |
| leaf table-policy { | | leaf table-policy { |
| type xr:Route-policy-name; | | type xr:Route-policy-name; |
| description | | description |
| "Configure policy for installation of forwarding data to L2FIB"; | | "Configure policy for installation of forwarding data to L2FIB"; |
| } | | } |
| container implicit-import-disable { | | container implicit-import-disable { |
| presence "Indicates a implicit-import-disable node is configured."; | | presence "Indicates a implicit-import-disable node is configured."; |
| description | | description |
| "Disable BGP implicit import"; | | "Disable BGP implicit import"; |
| } | | } |
| container route-policy { | | container route-policy { |
| description | | description |
| "Apply route policy"; | | "Apply route policy"; |
| leaf export { | | leaf export { |
| type xr:Route-policy-name; | | type xr:Route-policy-name; |
| description | | description |
| "Export route policy"; | | "Export route policy"; |
| } | | } |
| leaf import { | | leaf import { |
| type xr:Route-policy-name; | | type xr:Route-policy-name; |
| description | | description |
| "Import route policy"; | | "Import route policy"; |
| } | | } |
| } | | } |
| } | | } |
| leaf description { | | leaf description { |
| type string { | | type string { |
| length "1..64" { | | length "1..64" { |
| description | | description |
| "EVPN Instance description string"; | | "EVPN Instance description string"; |
| } | | } |
| } | | } |
| description | | description |
| "Description for this EVPN Instance"; | | "Description for this EVPN Instance"; |
| } | | } |
| container load-balancing { | | container load-balancing { |
| presence "Indicates a load-balancing node is configured."; | | presence "Indicates a load-balancing node is configured."; |
| description | | description |
| "Configure EVPN Instance load-balancing"; | | "Configure EVPN Instance load-balancing"; |
| container flow-label { | | container flow-label { |
| description | | description |
| "Flow Label load balancing"; | | "Flow Label load balancing"; |
| container static { | | container static { |
| presence "Indicates a static node is configured."; | | presence "Indicates a static node is configured."; |
| description | | description |
| "Static configuration of Flow Label"; | | "Static configuration of Flow Label"; |
| } | | } |
| } | | } |
| } | | } |
| container ecmp-disable-deprecated { | | container ecmp-disable-deprecated { |
| presence "Indicates a ecmp-disable-deprecated node is configured."; | | presence "Indicates a ecmp-disable-deprecated node is configured."; |
| description | | description |
| "Deprecated: migrate to <evpn evi N preferrred-nexthop modulo>"; | | "Deprecated: migrate to <evpn evi N preferrred-nexthop modulo>"; |
| } | | } |
| container preferred-nexthop { | | container preferred-nexthop { |
| description | | description |
| "Elect unique active path from ECMP candidate list"; | | "Elect unique active path from ECMP candidate list"; |
| container lowest-ip { | | container lowest-ip { |
| must "not(../highest-ip or ../modulo)"; | | must "not(../highest-ip or ../modulo)"; |
| presence "Indicates a lowest-ip node is configured."; | | presence "Indicates a lowest-ip node is configured."; |
| description | | description |
| "Lowest nexthop IP is active"; | | "Lowest nexthop IP is active"; |
| } | | } |
| container highest-ip { | | container highest-ip { |
| must "not(../lowest-ip or ../modulo)"; | | must "not(../lowest-ip or ../modulo)"; |
| presence "Indicates a highest-ip node is configured."; | | presence "Indicates a highest-ip node is configured."; |
| description | | description |
| "Highest nexthop IP is active"; | | "Highest nexthop IP is active"; |
| } | | } |
| container modulo { | | container modulo { |
| must "not(../lowest-ip or ../highest-ip)"; | | must "not(../lowest-ip or ../highest-ip)"; |
| presence "Indicates a modulo node is configured."; | | presence "Indicates a modulo node is configured."; |
| description | | description |
| "EVI modulo of nexthops cardinality is active"; | | "EVI modulo of nexthops cardinality is active"; |
| } | | } |
| } | | } |
| container advertise-mac { | | container advertise-mac { |
| presence "Indicates a advertise-mac node is configured."; | | presence "Indicates a advertise-mac node is configured."; |
| description | | description |
| "Configure EVPN Instance MAC advertisement"; | | "Configure EVPN Instance MAC advertisement"; |
| container bvi-mac { | | container bvi-mac { |
| presence "Indicates a bvi-mac node is configured."; | | presence "Indicates a bvi-mac node is configured."; |
| description | | description |
| "Advertise local MAC and BVI MAC routes"; | | "Advertise local MAC and BVI MAC routes"; |
| } | | } |
| } | | } |
| container unknown-unicast-suppression { | | container unknown-unicast-suppression { |
| presence "Indicates a unknown-unicast-suppression node is configured."; | | presence "Indicates a unknown-unicast-suppression node is configured."; |
| description | | description |
| "Enabling unknown unicast suppression"; | | "Enabling unknown unicast suppression"; |
| } | | } |
| container control-word-disable { | | container control-word-disable { |
| presence "Indicates a control-word-disable node is configured."; | | presence "Indicates a control-word-disable node is configured."; |
| description | | description |
| "Disabling control-word"; | | "Disabling control-word"; |
| } | | } |
| container ignore-mtu-mismatch { | | container ignore-mtu-mismatch { |
| presence "Indicates a ignore-mtu-mismatch node is configured."; | | presence "Indicates a ignore-mtu-mismatch node is configured."; |
| description | | description |
| "Ignore mismatch of local and remote MTUs"; | | "Ignore mismatch of local and remote MTUs"; |
| container disable-deprecated { | | container disable-deprecated { |
| presence "Indicates a disable-deprecated node is configured."; | | presence "Indicates a disable-deprecated node is configured."; |
| description | | description |
| "Disables ingoring mismatch of local and remote MTUs (deprecated)"; | | "Disables ingoring mismatch of local and remote MTUs (deprecated)"; |
| } | | } |
| } | | } |
| container enforce-mtu-match { | | container enforce-mtu-match { |
| presence "Indicates a enforce-mtu-match node is configured."; | | presence "Indicates a enforce-mtu-match node is configured."; |
| description | | description |
| "Enforce matching of local and remote MTUs"; | | "Enforce matching of local and remote MTUs"; |
| } | | } |
| container transmit-mtu-zero { | | container transmit-mtu-zero { |
| presence "Indicates a transmit-mtu-zero node is configured."; | | presence "Indicates a transmit-mtu-zero node is configured."; |
| description | | description |
| "Transmit MTU zero to remote instead of actual local MTU"; | | "Transmit MTU zero to remote instead of actual local MTU"; |
| container disable-deprecated { | | container disable-deprecated { |
| presence "Indicates a disable-deprecated node is configured."; | | presence "Indicates a disable-deprecated node is configured."; |
| description | | description |
| "Disables transmitting MTU zero to remote instead of actual local MTU (deprecated)"; | | "Disables transmitting MTU zero to remote instead of actual local MTU (deprecated)"; |
| } | | } |
| } | | } |
| container transmit-l2-mtu { | | container transmit-l2-mtu { |
| presence "Indicates a transmit-l2-mtu node is configured."; | | presence "Indicates a transmit-l2-mtu node is configured."; |
| description | | description |
| "Transmit L2 MTU of attachment circuit"; | | "Transmit L2 MTU of attachment circuit"; |
| } | | } |
| container re-origination-disable { | | container re-origination-disable { |
| presence "Indicates a re-origination-disable node is configured."; | | presence "Indicates a re-origination-disable node is configured."; |
| description | | description |
| "Disable route re-origination"; | | "Disable route re-origination"; |
| } | | } |
| container vrf { | | container vrf { |
| description | | description |
| "Enable EVPN instance for layer-3 route synchronization."; | | "Enable EVPN instance for layer-3 route synchronization."; |
| container default { | | container default { |
| presence "Indicates a default node is configured."; | | presence "Indicates a default node is configured."; |
| description | | description |
| "EVPN Instance for the default VRF"; | | "EVPN Instance for the default VRF"; |
| } | | } |
| } | | } |
| container multicast { | | container multicast { |
| presence "Indicates a multicast node is configured."; | | presence "Indicates a multicast node is configured."; |
| description | | description |
| "Configure EVPN Instance Multicast"; | | "Configure EVPN Instance Multicast"; |
| container source-connected { | | container source-connected { |
| presence "Indicates a source-connected node is configured."; | | presence "Indicates a source-connected node is configured."; |
| description | | description |
| "Multicast traffic source connected"; | | "Multicast traffic source connected"; |
| } | | } |
| } | | } |
| container proxy { | | container proxy { |
| presence "Indicates a proxy node is configured."; | | presence "Indicates a proxy node is configured."; |
| description | | description |
| "Configure EVPN Instance Proxy"; | | "Configure EVPN Instance Proxy"; |
| container igmp-snooping { | | container igmp-snooping { |
| presence "Indicates a igmp-snooping node is configured."; | | presence "Indicates a igmp-snooping node is configured."; |
| description | | description |
| "Proxy mode for IGMP-Snooping (selective multicast)"; | | "Proxy mode for IGMP-Snooping (selective multicast)"; |
| } | | } |
| } | | } |
| container etree { | | container etree { |
| presence "Indicates a etree node is configured."; | | presence "Indicates a etree node is configured."; |
| description | | description |
| "Configure EVPN Instance E-Tree"; | | "Configure EVPN Instance E-Tree"; |
| container leaf { | | container leaf { |
| presence "Indicates a leaf node is configured."; | | presence "Indicates a leaf node is configured."; |
| description | | description |
| "Designate EVPN Instance as EVPN E-Tree Leaf Site"; | | "Designate EVPN Instance as EVPN E-Tree Leaf Site"; |
| } | | } |
| container rt-leaf { | | container rt-leaf { |
| presence "Indicates a rt-leaf node is configured."; | | presence "Indicates a rt-leaf node is configured."; |
| description | | description |
| "Designate EVPN Instance as EVPN E-Tree Route-Target Leaf Site"; | | "Designate EVPN Instance as EVPN E-Tree Route-Target Leaf Site"; |
| } | | } |
| } | | } |
| n | container locators { | n | leaf locator { |
| | | type xr:Cisco-ios-xr-string { |
| | | length "1..58" { |
| | | description |
| | | "Specify locator name"; |
| | | } |
| | | pattern "[a-z0-9A-Z][a-z0-9A-Z_.:]*"; |
| | | } |
| description | | description |
| "EVI locator to use for EVPN SID allocation"; | | "EVI locator to use for EVPN SID allocation"; |
| n | list locator { | n | |
| key "locator-name"; | | |
| description | | |
| "EVI locator to use for EVPN SID allocation"; | | |
| leaf locator-name { | | |
| type xr:Cisco-ios-xr-string { | | |
| length "1..58" { | | |
| description | | |
| "Specify locator name"; | | |
| } | | |
| pattern "[a-z0-9A-Z][a-z0-9A-Z_.:]*"; | | |
| } | | |
| description | | |
| "EVI locator to use for EVPN SID allocation"; | | |
| } | | |
| container usid { | | |
| description | | |
| "Configure the uSID wide function knob"; | | |
| container allocation { | | |
| description | | |
| "Set the allocation types associated with uSID"; | | |
| container wide-local-id-block { | | |
| presence "Indicates a wide-local-id-block node is configured."; | | |
| description | | |
| "Enable uSID wide function knob for the locator"; | | |
| } | | |
| } | | |
| } | | |
| } | | |
| } | | } |
| container vpws-single-active-backup-suppression { | | container vpws-single-active-backup-suppression { |
| presence "Indicates a vpws-single-active-backup-suppression node is configured."; | | presence "Indicates a vpws-single-active-backup-suppression node is configured."; |
| description | | description |
| "Disables Non-DF EVI/EAD routes from being advertised in EVPN-VPWS Single-Active. Used for backwards-compatibility."; | | "Disables Non-DF EVI/EAD routes from being advertised in EVPN-VPWS Single-Active. Used for backwards-compatibility."; |
| } | | } |
| container bvi-coupled-mode { | | container bvi-coupled-mode { |
| presence "Indicates a bvi-coupled-mode node is configured."; | | presence "Indicates a bvi-coupled-mode node is configured."; |
| description | | description |
| "Couples BVI state to the core EVPN Instance state"; | | "Couples BVI state to the core EVPN Instance state"; |
| } | | } |
| } | | } |
| } | | } |
| list evi { | | list evi { |
| key "vpn-id"; | | key "vpn-id"; |
| description | | description |
| "Configure EVPN Instance VPN ID"; | | "Configure EVPN Instance VPN ID"; |
| leaf vpn-id { | | leaf vpn-id { |
| type uint32 { | | type uint32 { |
| range "1..65534" { | | range "1..65534" { |
| description | | description |
| "EVPN Instance VPN ID value"; | | "EVPN Instance VPN ID value"; |
| } | | } |
| } | | } |
| description | | description |
| "Configure EVPN Instance VPN ID"; | | "Configure EVPN Instance VPN ID"; |
| } | | } |
| container bgp { | | container bgp { |
| presence "Indicates a bgp node is configured."; | | presence "Indicates a bgp node is configured."; |
| description | | description |
| "Configure BGP"; | | "Configure BGP"; |
| container rd { | | container rd { |
| description | | description |
| "Set the Route Distinguisher"; | | "Set the Route Distinguisher"; |
| leaf two-byte-as-number { | | leaf two-byte-as-number { |
| type uint32 { | | type uint32 { |
| range "1..65535" { | | range "1..65535" { |
| description | | description |
| "Two Byte AS Number"; | | "Two Byte AS Number"; |
| } | | } |
| } | | } |
| n | must "not(../four-byte-as-number or ../ipv4-address) and ../two-byte-as-assigned-number"; | n | must "not(../four-byte-as-number or ../ipv4-address)"; |
| description | | description |
| "Two Byte AS Number"; | | "Two Byte AS Number"; |
| } | | } |
| leaf two-byte-as-assigned-number { | | leaf two-byte-as-assigned-number { |
| type uint32 { | | type uint32 { |
| range "0..4294967295" { | | range "0..4294967295" { |
| description | | description |
| "AS:nn (hex or decimal format)"; | | "AS:nn (hex or decimal format)"; |
| } | | } |
| } | | } |
| must "../two-byte-as-number"; | | must "../two-byte-as-number"; |
| description | | description |
| "AS:nn (hex or decimal format)"; | | "AS:nn (hex or decimal format)"; |
| } | | } |
| leaf four-byte-as-number { | | leaf four-byte-as-number { |
| type uint32 { | | type uint32 { |
| range "65536..4294967295" { | | range "65536..4294967295" { |
| description | | description |
| "Four Byte AS number"; | | "Four Byte AS number"; |
| } | | } |
| } | | } |
| n | must "not(../two-byte-as-number or ../ipv4-address) and ../four-byte-as-assigned-number"; | n | must "not(../two-byte-as-number or ../ipv4-address)"; |
| description | | description |
| "Four Byte AS number"; | | "Four Byte AS number"; |
| } | | } |
| leaf four-byte-as-assigned-number { | | leaf four-byte-as-assigned-number { |
| type uint32 { | | type uint32 { |
| range "0..65535" { | | range "0..65535" { |
| description | | description |
| "AS:nn (hex or decimal format)"; | | "AS:nn (hex or decimal format)"; |
| } | | } |
| } | | } |
| must "../four-byte-as-number"; | | must "../four-byte-as-number"; |
| description | | description |
| "AS:nn (hex or decimal format)"; | | "AS:nn (hex or decimal format)"; |
| } | | } |
| leaf ipv4-address { | | leaf ipv4-address { |
| type inet:ipv4-address-no-zone; | | type inet:ipv4-address-no-zone; |
| n | must "not(../two-byte-as-number or ../four-byte-as-number) and ../ipv4-address-assigned-number"; | n | must "not(../two-byte-as-number or ../four-byte-as-number)"; |
| description | | description |
| "IP address"; | | "IP address"; |
| } | | } |
| leaf ipv4-address-assigned-number { | | leaf ipv4-address-assigned-number { |
| type uint32 { | | type uint32 { |
| range "0..65535" { | | range "0..65535" { |
| description | | description |
| "IP-address:nn (hex or decimal format)"; | | "IP-address:nn (hex or decimal format)"; |
| } | | } |
| } | | } |
| must "../ipv4-address"; | | must "../ipv4-address"; |
| description | | description |
| "IP-address:nn (hex or decimal format)"; | | "IP-address:nn (hex or decimal format)"; |
| } | | } |
| } | | } |
| container route-target { | | container route-target { |
| description | | description |
| "Set the Route Target"; | | "Set the Route Target"; |
| container two-byte-as-rts { | | container two-byte-as-rts { |
| description | | description |
| "Two Byte AS Number Route Target"; | | "Two Byte AS Number Route Target"; |
| list two-byte-as-rt { | | list two-byte-as-rt { |
| key "two-byte-as-number assigned-number"; | | key "two-byte-as-number assigned-number"; |
| description | | description |
| "Two Byte AS Number Route Target"; | | "Two Byte AS Number Route Target"; |
| leaf two-byte-as-number { | | leaf two-byte-as-number { |
| type uint32 { | | type uint32 { |
| range "1..65535"; | | range "1..65535"; |
| } | | } |
| description | | description |
| "Two Byte AS Number"; | | "Two Byte AS Number"; |
| } | | } |
| leaf assigned-number { | | leaf assigned-number { |
| type uint32 { | | type uint32 { |
| range "0..4294967295" { | | range "0..4294967295" { |
| description | | description |
| "AS:nn (hex or decimal format)"; | | "AS:nn (hex or decimal format)"; |
| } | | } |
| } | | } |
| description | | description |
| "AS:nn (hex or decimal format)"; | | "AS:nn (hex or decimal format)"; |
| } | | } |
| } | | } |
| } | | } |
| container four-byte-as-rts { | | container four-byte-as-rts { |
| description | | description |
| "Four Byte AS number Route Target"; | | "Four Byte AS number Route Target"; |
| list four-byte-as-rt { | | list four-byte-as-rt { |
| key "four-byte-as-number assigned-number"; | | key "four-byte-as-number assigned-number"; |
| description | | description |
| "Four Byte AS number Route Target"; | | "Four Byte AS number Route Target"; |
| leaf four-byte-as-number { | | leaf four-byte-as-number { |
| type uint32 { | | type uint32 { |
| range "65536..4294967295"; | | range "65536..4294967295"; |
| } | | } |
| description | | description |
| "Four Byte AS number"; | | "Four Byte AS number"; |
| } | | } |
| leaf assigned-number { | | leaf assigned-number { |
| type uint32 { | | type uint32 { |
| range "0..65535" { | | range "0..65535" { |
| description | | description |
| "AS:nn (hex or decimal format)"; | | "AS:nn (hex or decimal format)"; |
| } | | } |
| } | | } |
| description | | description |
| "AS:nn (hex or decimal format)"; | | "AS:nn (hex or decimal format)"; |
| } | | } |
| } | | } |
| } | | } |
| container ipv4-address-rts { | | container ipv4-address-rts { |
| description | | description |
| "IP address Route Target"; | | "IP address Route Target"; |
| list ipv4-address-rt { | | list ipv4-address-rt { |
| key "ipv4-address assigned-number"; | | key "ipv4-address assigned-number"; |
| description | | description |
| "IP address"; | | "IP address"; |
| leaf ipv4-address { | | leaf ipv4-address { |
| type inet:ipv4-address-no-zone; | | type inet:ipv4-address-no-zone; |
| description | | description |
| "IP address"; | | "IP address"; |
| } | | } |
| leaf assigned-number { | | leaf assigned-number { |
| type uint32 { | | type uint32 { |
| range "0..65535" { | | range "0..65535" { |
| description | | description |
| "IP-address:nn (hex or decimal format)"; | | "IP-address:nn (hex or decimal format)"; |
| } | | } |
| } | | } |
| description | | description |
| "IP-address:nn (hex or decimal format)"; | | "IP-address:nn (hex or decimal format)"; |
| } | | } |
| } | | } |
| } | | } |
| container none { | | container none { |
| presence "Indicates a none node is configured."; | | presence "Indicates a none node is configured."; |
| description | | description |
| "Withhold BGP RTs"; | | "Withhold BGP RTs"; |
| } | | } |
| container import { | | container import { |
| description | | description |
| "Import Route Target"; | | "Import Route Target"; |
| container two-byte-as-rts { | | container two-byte-as-rts { |
| description | | description |
| "Two Byte AS Number Route Target"; | | "Two Byte AS Number Route Target"; |
| list two-byte-as-rt { | | list two-byte-as-rt { |
| key "two-byte-as-number assigned-number"; | | key "two-byte-as-number assigned-number"; |
| description | | description |
| "Two Byte AS Number Route Target"; | | "Two Byte AS Number Route Target"; |
| leaf two-byte-as-number { | | leaf two-byte-as-number { |
| type uint32 { | | type uint32 { |
| range "1..65535"; | | range "1..65535"; |
| } | | } |
| description | | description |
| "Two Byte AS Number"; | | "Two Byte AS Number"; |
| } | | } |
| leaf assigned-number { | | leaf assigned-number { |
| type uint32 { | | type uint32 { |
| range "0..4294967295" { | | range "0..4294967295" { |
| description | | description |
| "AS:nn (hex or decimal format)"; | | "AS:nn (hex or decimal format)"; |
| } | | } |
| } | | } |
| description | | description |
| "AS:nn (hex or decimal format)"; | | "AS:nn (hex or decimal format)"; |
| } | | } |
| } | | } |
| } | | } |
| container four-byte-as-rts { | | container four-byte-as-rts { |
| description | | description |
| "Four Byte AS number Route Target"; | | "Four Byte AS number Route Target"; |
| list four-byte-as-rt { | | list four-byte-as-rt { |
| key "four-byte-as-number assigned-number"; | | key "four-byte-as-number assigned-number"; |
| description | | description |
| "Four Byte AS number Route Target"; | | "Four Byte AS number Route Target"; |
| leaf four-byte-as-number { | | leaf four-byte-as-number { |
| type uint32 { | | type uint32 { |
| range "65536..4294967295"; | | range "65536..4294967295"; |
| } | | } |
| description | | description |
| "Four Byte AS number"; | | "Four Byte AS number"; |
| } | | } |
| leaf assigned-number { | | leaf assigned-number { |
| type uint32 { | | type uint32 { |
| range "0..65535" { | | range "0..65535" { |
| description | | description |
| "AS:nn (hex or decimal format)"; | | "AS:nn (hex or decimal format)"; |
| } | | } |
| } | | } |
| description | | description |
| "AS:nn (hex or decimal format)"; | | "AS:nn (hex or decimal format)"; |
| } | | } |
| } | | } |
| } | | } |
| container ipv4-address-rts { | | container ipv4-address-rts { |
| description | | description |
| "IP address Route Target"; | | "IP address Route Target"; |
| list ipv4-address-rt { | | list ipv4-address-rt { |
| key "ipv4-address assigned-number"; | | key "ipv4-address assigned-number"; |
| description | | description |
| "IP address"; | | "IP address"; |
| leaf ipv4-address { | | leaf ipv4-address { |
| type inet:ipv4-address-no-zone; | | type inet:ipv4-address-no-zone; |
| description | | description |
| "IP address"; | | "IP address"; |
| } | | } |
| leaf assigned-number { | | leaf assigned-number { |
| type uint32 { | | type uint32 { |
| range "0..65535" { | | range "0..65535" { |
| description | | description |
| "IP-address:nn (hex or decimal format)"; | | "IP-address:nn (hex or decimal format)"; |
| } | | } |
| } | | } |
| description | | description |
| "IP-address:nn (hex or decimal format)"; | | "IP-address:nn (hex or decimal format)"; |
| } | | } |
| } | | } |
| } | | } |
| container none { | | container none { |
| presence "Indicates a none node is configured."; | | presence "Indicates a none node is configured."; |
| description | | description |
| "Withhold BGP RTs"; | | "Withhold BGP RTs"; |
| } | | } |
| } | | } |
| container export { | | container export { |
| description | | description |
| "Export Route Target"; | | "Export Route Target"; |
| container two-byte-as-rts { | | container two-byte-as-rts { |
| description | | description |
| "Two Byte AS Number Route Target"; | | "Two Byte AS Number Route Target"; |
| list two-byte-as-rt { | | list two-byte-as-rt { |
| key "two-byte-as-number assigned-number"; | | key "two-byte-as-number assigned-number"; |
| description | | description |
| "Two Byte AS Number Route Target"; | | "Two Byte AS Number Route Target"; |
| leaf two-byte-as-number { | | leaf two-byte-as-number { |
| type uint32 { | | type uint32 { |
| range "1..65535"; | | range "1..65535"; |
| } | | } |
| description | | description |
| "Two Byte AS Number"; | | "Two Byte AS Number"; |
| } | | } |
| leaf assigned-number { | | leaf assigned-number { |
| type uint32 { | | type uint32 { |
| range "0..4294967295" { | | range "0..4294967295" { |
| description | | description |
| "AS:nn (hex or decimal format)"; | | "AS:nn (hex or decimal format)"; |
| } | | } |
| } | | } |
| description | | description |
| "AS:nn (hex or decimal format)"; | | "AS:nn (hex or decimal format)"; |
| } | | } |
| } | | } |
| } | | } |
| container four-byte-as-rts { | | container four-byte-as-rts { |
| description | | description |
| "Four Byte AS number Route Target"; | | "Four Byte AS number Route Target"; |
| list four-byte-as-rt { | | list four-byte-as-rt { |
| key "four-byte-as-number assigned-number"; | | key "four-byte-as-number assigned-number"; |
| description | | description |
| "Four Byte AS number Route Target"; | | "Four Byte AS number Route Target"; |
| leaf four-byte-as-number { | | leaf four-byte-as-number { |
| type uint32 { | | type uint32 { |
| range "65536..4294967295"; | | range "65536..4294967295"; |
| } | | } |
| description | | description |
| "Four Byte AS number"; | | "Four Byte AS number"; |
| } | | } |
| leaf assigned-number { | | leaf assigned-number { |
| type uint32 { | | type uint32 { |
| range "0..65535" { | | range "0..65535" { |
| description | | description |
| "AS:nn (hex or decimal format)"; | | "AS:nn (hex or decimal format)"; |
| } | | } |
| } | | } |
| description | | description |
| "AS:nn (hex or decimal format)"; | | "AS:nn (hex or decimal format)"; |
| } | | } |
| } | | } |
| } | | } |
| container ipv4-address-rts { | | container ipv4-address-rts { |
| description | | description |
| "IP address Route Target"; | | "IP address Route Target"; |
| list ipv4-address-rt { | | list ipv4-address-rt { |
| key "ipv4-address assigned-number"; | | key "ipv4-address assigned-number"; |
| description | | description |
| "IP address"; | | "IP address"; |
| leaf ipv4-address { | | leaf ipv4-address { |
| type inet:ipv4-address-no-zone; | | type inet:ipv4-address-no-zone; |
| description | | description |
| "IP address"; | | "IP address"; |
| } | | } |
| leaf assigned-number { | | leaf assigned-number { |
| type uint32 { | | type uint32 { |
| range "0..65535" { | | range "0..65535" { |
| description | | description |
| "IP-address:nn (hex or decimal format)"; | | "IP-address:nn (hex or decimal format)"; |
| } | | } |
| } | | } |
| description | | description |
| "IP-address:nn (hex or decimal format)"; | | "IP-address:nn (hex or decimal format)"; |
| } | | } |
| } | | } |
| } | | } |
| container none { | | container none { |
| presence "Indicates a none node is configured."; | | presence "Indicates a none node is configured."; |
| description | | description |
| "Withhold BGP RTs"; | | "Withhold BGP RTs"; |
| } | | } |
| } | | } |
| } | | } |
| leaf table-policy { | | leaf table-policy { |
| type xr:Route-policy-name; | | type xr:Route-policy-name; |
| description | | description |
| "Configure policy for installation of forwarding data to L2FIB"; | | "Configure policy for installation of forwarding data to L2FIB"; |
| } | | } |
| container implicit-import-disable { | | container implicit-import-disable { |
| presence "Indicates a implicit-import-disable node is configured."; | | presence "Indicates a implicit-import-disable node is configured."; |
| description | | description |
| "Disable BGP implicit import"; | | "Disable BGP implicit import"; |
| } | | } |
| container route-policy { | | container route-policy { |
| description | | description |
| "Apply route policy"; | | "Apply route policy"; |
| leaf export { | | leaf export { |
| type xr:Route-policy-name; | | type xr:Route-policy-name; |
| description | | description |
| "Export route policy"; | | "Export route policy"; |
| } | | } |
| leaf import { | | leaf import { |
| type xr:Route-policy-name; | | type xr:Route-policy-name; |
| description | | description |
| "Import route policy"; | | "Import route policy"; |
| } | | } |
| } | | } |
| } | | } |
| leaf description { | | leaf description { |
| type string { | | type string { |
| length "1..64" { | | length "1..64" { |
| description | | description |
| "EVPN Instance description string"; | | "EVPN Instance description string"; |
| } | | } |
| } | | } |
| description | | description |
| "Description for this EVPN Instance"; | | "Description for this EVPN Instance"; |
| } | | } |
| container load-balancing { | | container load-balancing { |
| presence "Indicates a load-balancing node is configured."; | | presence "Indicates a load-balancing node is configured."; |
| description | | description |
| "Configure EVPN Instance load-balancing"; | | "Configure EVPN Instance load-balancing"; |
| container flow-label { | | container flow-label { |
| description | | description |
| "Flow Label load balancing"; | | "Flow Label load balancing"; |
| container static { | | container static { |
| presence "Indicates a static node is configured."; | | presence "Indicates a static node is configured."; |
| description | | description |
| "Static configuration of Flow Label"; | | "Static configuration of Flow Label"; |
| } | | } |
| } | | } |
| } | | } |
| container ecmp-disable-deprecated { | | container ecmp-disable-deprecated { |
| presence "Indicates a ecmp-disable-deprecated node is configured."; | | presence "Indicates a ecmp-disable-deprecated node is configured."; |
| description | | description |
| "Deprecated: migrate to <evpn evi N preferrred-nexthop modulo>"; | | "Deprecated: migrate to <evpn evi N preferrred-nexthop modulo>"; |
| } | | } |
| container preferred-nexthop { | | container preferred-nexthop { |
| description | | description |
| "Elect unique active path from ECMP candidate list"; | | "Elect unique active path from ECMP candidate list"; |
| container lowest-ip { | | container lowest-ip { |
| must "not(../highest-ip or ../modulo)"; | | must "not(../highest-ip or ../modulo)"; |
| presence "Indicates a lowest-ip node is configured."; | | presence "Indicates a lowest-ip node is configured."; |
| description | | description |
| "Lowest nexthop IP is active"; | | "Lowest nexthop IP is active"; |
| } | | } |
| container highest-ip { | | container highest-ip { |
| must "not(../lowest-ip or ../modulo)"; | | must "not(../lowest-ip or ../modulo)"; |
| presence "Indicates a highest-ip node is configured."; | | presence "Indicates a highest-ip node is configured."; |
| description | | description |
| "Highest nexthop IP is active"; | | "Highest nexthop IP is active"; |
| } | | } |
| container modulo { | | container modulo { |
| must "not(../lowest-ip or ../highest-ip)"; | | must "not(../lowest-ip or ../highest-ip)"; |
| presence "Indicates a modulo node is configured."; | | presence "Indicates a modulo node is configured."; |
| description | | description |
| "EVI modulo of nexthops cardinality is active"; | | "EVI modulo of nexthops cardinality is active"; |
| } | | } |
| } | | } |
| container advertise-mac { | | container advertise-mac { |
| presence "Indicates a advertise-mac node is configured."; | | presence "Indicates a advertise-mac node is configured."; |
| description | | description |
| "Configure EVPN Instance MAC advertisement"; | | "Configure EVPN Instance MAC advertisement"; |
| container bvi-mac { | | container bvi-mac { |
| presence "Indicates a bvi-mac node is configured."; | | presence "Indicates a bvi-mac node is configured."; |
| description | | description |
| "Advertise local MAC and BVI MAC routes"; | | "Advertise local MAC and BVI MAC routes"; |
| } | | } |
| } | | } |
| container unknown-unicast-suppression { | | container unknown-unicast-suppression { |
| presence "Indicates a unknown-unicast-suppression node is configured."; | | presence "Indicates a unknown-unicast-suppression node is configured."; |
| description | | description |
| "Enabling unknown unicast suppression"; | | "Enabling unknown unicast suppression"; |
| } | | } |
| container control-word-disable { | | container control-word-disable { |
| presence "Indicates a control-word-disable node is configured."; | | presence "Indicates a control-word-disable node is configured."; |
| description | | description |
| "Disabling control-word"; | | "Disabling control-word"; |
| } | | } |
| container ignore-mtu-mismatch { | | container ignore-mtu-mismatch { |
| presence "Indicates a ignore-mtu-mismatch node is configured."; | | presence "Indicates a ignore-mtu-mismatch node is configured."; |
| description | | description |
| "Ignore mismatch of local and remote MTUs"; | | "Ignore mismatch of local and remote MTUs"; |
| container disable-deprecated { | | container disable-deprecated { |
| presence "Indicates a disable-deprecated node is configured."; | | presence "Indicates a disable-deprecated node is configured."; |
| description | | description |
| "Disables ingoring mismatch of local and remote MTUs (deprecated)"; | | "Disables ingoring mismatch of local and remote MTUs (deprecated)"; |
| } | | } |
| } | | } |
| container enforce-mtu-match { | | container enforce-mtu-match { |
| presence "Indicates a enforce-mtu-match node is configured."; | | presence "Indicates a enforce-mtu-match node is configured."; |
| description | | description |
| "Enforce matching of local and remote MTUs"; | | "Enforce matching of local and remote MTUs"; |
| } | | } |
| container transmit-mtu-zero { | | container transmit-mtu-zero { |
| presence "Indicates a transmit-mtu-zero node is configured."; | | presence "Indicates a transmit-mtu-zero node is configured."; |
| description | | description |
| "Transmit MTU zero to remote instead of actual local MTU"; | | "Transmit MTU zero to remote instead of actual local MTU"; |
| container disable-deprecated { | | container disable-deprecated { |
| presence "Indicates a disable-deprecated node is configured."; | | presence "Indicates a disable-deprecated node is configured."; |
| description | | description |
| "Disables transmitting MTU zero to remote instead of actual local MTU (deprecated)"; | | "Disables transmitting MTU zero to remote instead of actual local MTU (deprecated)"; |
| } | | } |
| } | | } |
| container transmit-l2-mtu { | | container transmit-l2-mtu { |
| presence "Indicates a transmit-l2-mtu node is configured."; | | presence "Indicates a transmit-l2-mtu node is configured."; |
| description | | description |
| "Transmit L2 MTU of attachment circuit"; | | "Transmit L2 MTU of attachment circuit"; |
| } | | } |
| container re-origination-disable { | | container re-origination-disable { |
| presence "Indicates a re-origination-disable node is configured."; | | presence "Indicates a re-origination-disable node is configured."; |
| description | | description |
| "Disable route re-origination"; | | "Disable route re-origination"; |
| } | | } |
| container vrf { | | container vrf { |
| description | | description |
| "Enable EVPN instance for layer-3 route synchronization."; | | "Enable EVPN instance for layer-3 route synchronization."; |
| container default { | | container default { |
| presence "Indicates a default node is configured."; | | presence "Indicates a default node is configured."; |
| description | | description |
| "EVPN Instance for the default VRF"; | | "EVPN Instance for the default VRF"; |
| } | | } |
| } | | } |
| container multicast { | | container multicast { |
| presence "Indicates a multicast node is configured."; | | presence "Indicates a multicast node is configured."; |
| description | | description |
| "Configure EVPN Instance Multicast"; | | "Configure EVPN Instance Multicast"; |
| container source-connected { | | container source-connected { |
| presence "Indicates a source-connected node is configured."; | | presence "Indicates a source-connected node is configured."; |
| description | | description |
| "Multicast traffic source connected"; | | "Multicast traffic source connected"; |
| } | | } |
| } | | } |
| container proxy { | | container proxy { |
| presence "Indicates a proxy node is configured."; | | presence "Indicates a proxy node is configured."; |
| description | | description |
| "Configure EVPN Instance Proxy"; | | "Configure EVPN Instance Proxy"; |
| container igmp-snooping { | | container igmp-snooping { |
| presence "Indicates a igmp-snooping node is configured."; | | presence "Indicates a igmp-snooping node is configured."; |
| description | | description |
| "Proxy mode for IGMP-Snooping (selective multicast)"; | | "Proxy mode for IGMP-Snooping (selective multicast)"; |
| } | | } |
| } | | } |
| container etree { | | container etree { |
| presence "Indicates a etree node is configured."; | | presence "Indicates a etree node is configured."; |
| description | | description |
| "Configure EVPN Instance E-Tree"; | | "Configure EVPN Instance E-Tree"; |
| container leaf { | | container leaf { |
| presence "Indicates a leaf node is configured."; | | presence "Indicates a leaf node is configured."; |
| description | | description |
| "Designate EVPN Instance as EVPN E-Tree Leaf Site"; | | "Designate EVPN Instance as EVPN E-Tree Leaf Site"; |
| } | | } |
| container rt-leaf { | | container rt-leaf { |
| presence "Indicates a rt-leaf node is configured."; | | presence "Indicates a rt-leaf node is configured."; |
| description | | description |
| "Designate EVPN Instance as EVPN E-Tree Route-Target Leaf Site"; | | "Designate EVPN Instance as EVPN E-Tree Route-Target Leaf Site"; |
| } | | } |
| } | | } |
| n | container locators { | n | leaf locator { |
| | | type xr:Cisco-ios-xr-string { |
| | | length "1..58" { |
| | | description |
| | | "Specify locator name"; |
| | | } |
| | | pattern "[a-z0-9A-Z][a-z0-9A-Z_.:]*"; |
| | | } |
| description | | description |
| "EVI locator to use for EVPN SID allocation"; | | "EVI locator to use for EVPN SID allocation"; |
| n | list locator { | n | |
| key "locator-name"; | | |
| description | | |
| "EVI locator to use for EVPN SID allocation"; | | |
| leaf locator-name { | | |
| type xr:Cisco-ios-xr-string { | | |
| length "1..58" { | | |
| description | | |
| "Specify locator name"; | | |
| } | | |
| pattern "[a-z0-9A-Z][a-z0-9A-Z_.:]*"; | | |
| } | | |
| description | | |
| "EVI locator to use for EVPN SID allocation"; | | |
| } | | |
| container usid { | | |
| description | | |
| "Configure the uSID wide function knob"; | | |
| container allocation { | | |
| description | | |
| "Set the allocation types associated with uSID"; | | |
| container wide-local-id-block { | | |
| presence "Indicates a wide-local-id-block node is configured."; | | |
| description | | |
| "Enable uSID wide function knob for the locator"; | | |
| } | | |
| } | | |
| } | | |
| } | | |
| } | | } |
| container vpws-single-active-backup-suppression { | | container vpws-single-active-backup-suppression { |
| presence "Indicates a vpws-single-active-backup-suppression node is configured."; | | presence "Indicates a vpws-single-active-backup-suppression node is configured."; |
| description | | description |
| "Disables Non-DF EVI/EAD routes from being advertised in EVPN-VPWS Single-Active. Used for backwards-compatibility."; | | "Disables Non-DF EVI/EAD routes from being advertised in EVPN-VPWS Single-Active. Used for backwards-compatibility."; |
| } | | } |
| container bvi-coupled-mode { | | container bvi-coupled-mode { |
| presence "Indicates a bvi-coupled-mode node is configured."; | | presence "Indicates a bvi-coupled-mode node is configured."; |
| description | | description |
| "Couples BVI state to the core EVPN Instance state"; | | "Couples BVI state to the core EVPN Instance state"; |
| } | | } |
| } | | } |
| } | | } |
| container route-sync { | | container route-sync { |
| description | | description |
| "Configure vrf route-sync EVPN Instance VPN ID"; | | "Configure vrf route-sync EVPN Instance VPN ID"; |
| container stitching { | | container stitching { |
| description | | description |
| "Treat EVPN Instance as Stitching side"; | | "Treat EVPN Instance as Stitching side"; |
| list evi { | | list evi { |
| key "vpn-id"; | | key "vpn-id"; |
| description | | description |
| "Configure EVPN Instance VPN ID"; | | "Configure EVPN Instance VPN ID"; |
| leaf vpn-id { | | leaf vpn-id { |
| type uint32 { | | type uint32 { |
| range "1..65534" { | | range "1..65534" { |
| description | | description |
| "EVPN Instance VPN ID value"; | | "EVPN Instance VPN ID value"; |
| } | | } |
| } | | } |
| description | | description |
| "Configure EVPN Instance VPN ID"; | | "Configure EVPN Instance VPN ID"; |
| } | | } |
| container bgp { | | container bgp { |
| presence "Indicates a bgp node is configured."; | | presence "Indicates a bgp node is configured."; |
| description | | description |
| "Configure BGP"; | | "Configure BGP"; |
| container rd { | | container rd { |
| description | | description |
| "Set the Route Distinguisher"; | | "Set the Route Distinguisher"; |
| leaf two-byte-as-number { | | leaf two-byte-as-number { |
| type uint32 { | | type uint32 { |
| range "1..65535" { | | range "1..65535" { |
| description | | description |
| "Two Byte AS Number"; | | "Two Byte AS Number"; |
| } | | } |
| } | | } |
| n | must "not(../four-byte-as-number or ../ipv4-address) and ../two-byte-as-assigned-number"; | n | must "not(../four-byte-as-number or ../ipv4-address)"; |
| description | | description |
| "Two Byte AS Number"; | | "Two Byte AS Number"; |
| } | | } |
| leaf two-byte-as-assigned-number { | | leaf two-byte-as-assigned-number { |
| type uint32 { | | type uint32 { |
| range "0..4294967295" { | | range "0..4294967295" { |
| description | | description |
| "AS:nn (hex or decimal format)"; | | "AS:nn (hex or decimal format)"; |
| } | | } |
| } | | } |
| must "../two-byte-as-number"; | | must "../two-byte-as-number"; |
| description | | description |
| "AS:nn (hex or decimal format)"; | | "AS:nn (hex or decimal format)"; |
| } | | } |
| leaf four-byte-as-number { | | leaf four-byte-as-number { |
| type uint32 { | | type uint32 { |
| range "65536..4294967295" { | | range "65536..4294967295" { |
| description | | description |
| "Four Byte AS number"; | | "Four Byte AS number"; |
| } | | } |
| } | | } |
| n | must "not(../two-byte-as-number or ../ipv4-address) and ../four-byte-as-assigned-number"; | n | must "not(../two-byte-as-number or ../ipv4-address)"; |
| description | | description |
| "Four Byte AS number"; | | "Four Byte AS number"; |
| } | | } |
| leaf four-byte-as-assigned-number { | | leaf four-byte-as-assigned-number { |
| type uint32 { | | type uint32 { |
| range "0..65535" { | | range "0..65535" { |
| description | | description |
| "AS:nn (hex or decimal format)"; | | "AS:nn (hex or decimal format)"; |
| } | | } |
| } | | } |
| must "../four-byte-as-number"; | | must "../four-byte-as-number"; |
| description | | description |
| "AS:nn (hex or decimal format)"; | | "AS:nn (hex or decimal format)"; |
| } | | } |
| leaf ipv4-address { | | leaf ipv4-address { |
| type inet:ipv4-address-no-zone; | | type inet:ipv4-address-no-zone; |
| n | must "not(../two-byte-as-number or ../four-byte-as-number) and ../ipv4-address-assigned-number"; | n | must "not(../two-byte-as-number or ../four-byte-as-number)"; |
| description | | description |
| "IP address"; | | "IP address"; |
| } | | } |
| leaf ipv4-address-assigned-number { | | leaf ipv4-address-assigned-number { |
| type uint32 { | | type uint32 { |
| range "0..65535" { | | range "0..65535" { |
| description | | description |
| "IP-address:nn (hex or decimal format)"; | | "IP-address:nn (hex or decimal format)"; |
| } | | } |
| } | | } |
| must "../ipv4-address"; | | must "../ipv4-address"; |
| description | | description |
| "IP-address:nn (hex or decimal format)"; | | "IP-address:nn (hex or decimal format)"; |
| } | | } |
| } | | } |
| container route-target { | | container route-target { |
| description | | description |
| "Set the Route Target"; | | "Set the Route Target"; |
| container two-byte-as-rts { | | container two-byte-as-rts { |
| description | | description |
| "Two Byte AS Number Route Target"; | | "Two Byte AS Number Route Target"; |
| list two-byte-as-rt { | | list two-byte-as-rt { |
| key "two-byte-as-number assigned-number"; | | key "two-byte-as-number assigned-number"; |
| description | | description |
| "Two Byte AS Number Route Target"; | | "Two Byte AS Number Route Target"; |
| leaf two-byte-as-number { | | leaf two-byte-as-number { |
| type uint32 { | | type uint32 { |
| range "1..65535"; | | range "1..65535"; |
| } | | } |
| description | | description |
| "Two Byte AS Number"; | | "Two Byte AS Number"; |
| } | | } |
| leaf assigned-number { | | leaf assigned-number { |
| type uint32 { | | type uint32 { |
| range "0..4294967295" { | | range "0..4294967295" { |
| description | | description |
| "AS:nn (hex or decimal format)"; | | "AS:nn (hex or decimal format)"; |
| } | | } |
| } | | } |
| description | | description |
| "AS:nn (hex or decimal format)"; | | "AS:nn (hex or decimal format)"; |
| } | | } |
| } | | } |
| } | | } |
| container four-byte-as-rts { | | container four-byte-as-rts { |
| description | | description |
| "Four Byte AS number Route Target"; | | "Four Byte AS number Route Target"; |
| list four-byte-as-rt { | | list four-byte-as-rt { |
| key "four-byte-as-number assigned-number"; | | key "four-byte-as-number assigned-number"; |
| description | | description |
| "Four Byte AS number Route Target"; | | "Four Byte AS number Route Target"; |
| leaf four-byte-as-number { | | leaf four-byte-as-number { |
| type uint32 { | | type uint32 { |
| range "65536..4294967295"; | | range "65536..4294967295"; |
| } | | } |
| description | | description |
| "Four Byte AS number"; | | "Four Byte AS number"; |
| } | | } |
| leaf assigned-number { | | leaf assigned-number { |
| type uint32 { | | type uint32 { |
| range "0..65535" { | | range "0..65535" { |
| description | | description |
| "AS:nn (hex or decimal format)"; | | "AS:nn (hex or decimal format)"; |
| } | | } |
| } | | } |
| description | | description |
| "AS:nn (hex or decimal format)"; | | "AS:nn (hex or decimal format)"; |
| } | | } |
| } | | } |
| } | | } |
| container ipv4-address-rts { | | container ipv4-address-rts { |
| description | | description |
| "IP address Route Target"; | | "IP address Route Target"; |
| list ipv4-address-rt { | | list ipv4-address-rt { |
| key "ipv4-address assigned-number"; | | key "ipv4-address assigned-number"; |
| description | | description |
| "IP address"; | | "IP address"; |
| leaf ipv4-address { | | leaf ipv4-address { |
| type inet:ipv4-address-no-zone; | | type inet:ipv4-address-no-zone; |
| description | | description |
| "IP address"; | | "IP address"; |
| } | | } |
| leaf assigned-number { | | leaf assigned-number { |
| type uint32 { | | type uint32 { |
| range "0..65535" { | | range "0..65535" { |
| description | | description |
| "IP-address:nn (hex or decimal format)"; | | "IP-address:nn (hex or decimal format)"; |
| } | | } |
| } | | } |
| description | | description |
| "IP-address:nn (hex or decimal format)"; | | "IP-address:nn (hex or decimal format)"; |
| } | | } |
| } | | } |
| } | | } |
| container none { | | container none { |
| presence "Indicates a none node is configured."; | | presence "Indicates a none node is configured."; |
| description | | description |
| "Withhold BGP RTs"; | | "Withhold BGP RTs"; |
| } | | } |
| container import { | | container import { |
| description | | description |
| "Import Route Target"; | | "Import Route Target"; |
| container two-byte-as-rts { | | container two-byte-as-rts { |
| description | | description |
| "Two Byte AS Number Route Target"; | | "Two Byte AS Number Route Target"; |
| list two-byte-as-rt { | | list two-byte-as-rt { |
| key "two-byte-as-number assigned-number"; | | key "two-byte-as-number assigned-number"; |
| description | | description |
| "Two Byte AS Number Route Target"; | | "Two Byte AS Number Route Target"; |
| leaf two-byte-as-number { | | leaf two-byte-as-number { |
| type uint32 { | | type uint32 { |
| range "1..65535"; | | range "1..65535"; |
| } | | } |
| description | | description |
| "Two Byte AS Number"; | | "Two Byte AS Number"; |
| } | | } |
| leaf assigned-number { | | leaf assigned-number { |
| type uint32 { | | type uint32 { |
| range "0..4294967295" { | | range "0..4294967295" { |
| description | | description |
| "AS:nn (hex or decimal format)"; | | "AS:nn (hex or decimal format)"; |
| } | | } |
| } | | } |
| description | | description |
| "AS:nn (hex or decimal format)"; | | "AS:nn (hex or decimal format)"; |
| } | | } |
| } | | } |
| } | | } |
| container four-byte-as-rts { | | container four-byte-as-rts { |
| description | | description |
| "Four Byte AS number Route Target"; | | "Four Byte AS number Route Target"; |
| list four-byte-as-rt { | | list four-byte-as-rt { |
| key "four-byte-as-number assigned-number"; | | key "four-byte-as-number assigned-number"; |
| description | | description |
| "Four Byte AS number Route Target"; | | "Four Byte AS number Route Target"; |
| leaf four-byte-as-number { | | leaf four-byte-as-number { |
| type uint32 { | | type uint32 { |
| range "65536..4294967295"; | | range "65536..4294967295"; |
| } | | } |
| description | | description |
| "Four Byte AS number"; | | "Four Byte AS number"; |
| } | | } |
| leaf assigned-number { | | leaf assigned-number { |
| type uint32 { | | type uint32 { |
| range "0..65535" { | | range "0..65535" { |
| description | | description |
| "AS:nn (hex or decimal format)"; | | "AS:nn (hex or decimal format)"; |
| } | | } |
| } | | } |
| description | | description |
| "AS:nn (hex or decimal format)"; | | "AS:nn (hex or decimal format)"; |
| } | | } |
| } | | } |
| } | | } |
| container ipv4-address-rts { | | container ipv4-address-rts { |
| description | | description |
| "IP address Route Target"; | | "IP address Route Target"; |
| list ipv4-address-rt { | | list ipv4-address-rt { |
| key "ipv4-address assigned-number"; | | key "ipv4-address assigned-number"; |
| description | | description |
| "IP address"; | | "IP address"; |
| leaf ipv4-address { | | leaf ipv4-address { |
| type inet:ipv4-address-no-zone; | | type inet:ipv4-address-no-zone; |
| description | | description |
| "IP address"; | | "IP address"; |
| } | | } |
| leaf assigned-number { | | leaf assigned-number { |
| type uint32 { | | type uint32 { |
| range "0..65535" { | | range "0..65535" { |
| description | | description |
| "IP-address:nn (hex or decimal format)"; | | "IP-address:nn (hex or decimal format)"; |
| } | | } |
| } | | } |
| description | | description |
| "IP-address:nn (hex or decimal format)"; | | "IP-address:nn (hex or decimal format)"; |
| } | | } |
| } | | } |
| } | | } |
| container none { | | container none { |
| presence "Indicates a none node is configured."; | | presence "Indicates a none node is configured."; |
| description | | description |
| "Withhold BGP RTs"; | | "Withhold BGP RTs"; |
| } | | } |
| } | | } |
| container export { | | container export { |
| description | | description |
| "Export Route Target"; | | "Export Route Target"; |
| container two-byte-as-rts { | | container two-byte-as-rts { |
| description | | description |
| "Two Byte AS Number Route Target"; | | "Two Byte AS Number Route Target"; |
| list two-byte-as-rt { | | list two-byte-as-rt { |
| key "two-byte-as-number assigned-number"; | | key "two-byte-as-number assigned-number"; |
| description | | description |
| "Two Byte AS Number Route Target"; | | "Two Byte AS Number Route Target"; |
| leaf two-byte-as-number { | | leaf two-byte-as-number { |
| type uint32 { | | type uint32 { |
| range "1..65535"; | | range "1..65535"; |
| } | | } |
| description | | description |
| "Two Byte AS Number"; | | "Two Byte AS Number"; |
| } | | } |
| leaf assigned-number { | | leaf assigned-number { |
| type uint32 { | | type uint32 { |
| range "0..4294967295" { | | range "0..4294967295" { |
| description | | description |
| "AS:nn (hex or decimal format)"; | | "AS:nn (hex or decimal format)"; |
| } | | } |
| } | | } |
| description | | description |
| "AS:nn (hex or decimal format)"; | | "AS:nn (hex or decimal format)"; |
| } | | } |
| } | | } |
| } | | } |
| container four-byte-as-rts { | | container four-byte-as-rts { |
| description | | description |
| "Four Byte AS number Route Target"; | | "Four Byte AS number Route Target"; |
| list four-byte-as-rt { | | list four-byte-as-rt { |
| key "four-byte-as-number assigned-number"; | | key "four-byte-as-number assigned-number"; |
| description | | description |
| "Four Byte AS number Route Target"; | | "Four Byte AS number Route Target"; |
| leaf four-byte-as-number { | | leaf four-byte-as-number { |
| type uint32 { | | type uint32 { |
| range "65536..4294967295"; | | range "65536..4294967295"; |
| } | | } |
| description | | description |
| "Four Byte AS number"; | | "Four Byte AS number"; |
| } | | } |
| leaf assigned-number { | | leaf assigned-number { |
| type uint32 { | | type uint32 { |
| range "0..65535" { | | range "0..65535" { |
| description | | description |
| "AS:nn (hex or decimal format)"; | | "AS:nn (hex or decimal format)"; |
| } | | } |
| } | | } |
| description | | description |
| "AS:nn (hex or decimal format)"; | | "AS:nn (hex or decimal format)"; |
| } | | } |
| } | | } |
| } | | } |
| container ipv4-address-rts { | | container ipv4-address-rts { |
| description | | description |
| "IP address Route Target"; | | "IP address Route Target"; |
| list ipv4-address-rt { | | list ipv4-address-rt { |
| key "ipv4-address assigned-number"; | | key "ipv4-address assigned-number"; |
| description | | description |
| "IP address"; | | "IP address"; |
| leaf ipv4-address { | | leaf ipv4-address { |
| type inet:ipv4-address-no-zone; | | type inet:ipv4-address-no-zone; |
| description | | description |
| "IP address"; | | "IP address"; |
| } | | } |
| leaf assigned-number { | | leaf assigned-number { |
| type uint32 { | | type uint32 { |
| range "0..65535" { | | range "0..65535" { |
| description | | description |
| "IP-address:nn (hex or decimal format)"; | | "IP-address:nn (hex or decimal format)"; |
| } | | } |
| } | | } |
| description | | description |
| "IP-address:nn (hex or decimal format)"; | | "IP-address:nn (hex or decimal format)"; |
| } | | } |
| } | | } |
| } | | } |
| container none { | | container none { |
| presence "Indicates a none node is configured."; | | presence "Indicates a none node is configured."; |
| description | | description |
| "Withhold BGP RTs"; | | "Withhold BGP RTs"; |
| } | | } |
| } | | } |
| } | | } |
| leaf table-policy { | | leaf table-policy { |
| type xr:Route-policy-name; | | type xr:Route-policy-name; |
| description | | description |
| "Configure policy for installation of forwarding data to L2FIB"; | | "Configure policy for installation of forwarding data to L2FIB"; |
| } | | } |
| container implicit-import-disable { | | container implicit-import-disable { |
| presence "Indicates a implicit-import-disable node is configured."; | | presence "Indicates a implicit-import-disable node is configured."; |
| description | | description |
| "Disable BGP implicit import"; | | "Disable BGP implicit import"; |
| } | | } |
| container route-policy { | | container route-policy { |
| description | | description |
| "Apply route policy"; | | "Apply route policy"; |
| leaf export { | | leaf export { |
| type xr:Route-policy-name; | | type xr:Route-policy-name; |
| description | | description |
| "Export route policy"; | | "Export route policy"; |
| } | | } |
| leaf import { | | leaf import { |
| type xr:Route-policy-name; | | type xr:Route-policy-name; |
| description | | description |
| "Import route policy"; | | "Import route policy"; |
| } | | } |
| } | | } |
| } | | } |
| leaf description { | | leaf description { |
| type string { | | type string { |
| length "1..64" { | | length "1..64" { |
| description | | description |
| "EVPN Instance description string"; | | "EVPN Instance description string"; |
| } | | } |
| } | | } |
| description | | description |
| "Description for this EVPN Instance"; | | "Description for this EVPN Instance"; |
| } | | } |
| n | | n | container load-balancing { |
| | | presence "Indicates a load-balancing node is configured."; |
| | | description |
| | | "Configure EVPN Instance load-balancing"; |
| | | container flow-label { |
| | | description |
| | | "Flow Label load balancing"; |
| | | container static { |
| | | presence "Indicates a static node is configured."; |
| | | description |
| | | "Static configuration of Flow Label"; |
| | | } |
| | | } |
| | | } |
| container ecmp-disable-deprecated { | | container ecmp-disable-deprecated { |
| presence "Indicates a ecmp-disable-deprecated node is configured."; | | presence "Indicates a ecmp-disable-deprecated node is configured."; |
| description | | description |
| "Deprecated: migrate to <evpn evi N preferrred-nexthop modulo>"; | | "Deprecated: migrate to <evpn evi N preferrred-nexthop modulo>"; |
| } | | } |
| container preferred-nexthop { | | container preferred-nexthop { |
| description | | description |
| "Elect unique active path from ECMP candidate list"; | | "Elect unique active path from ECMP candidate list"; |
| container lowest-ip { | | container lowest-ip { |
| must "not(../highest-ip or ../modulo)"; | | must "not(../highest-ip or ../modulo)"; |
| presence "Indicates a lowest-ip node is configured."; | | presence "Indicates a lowest-ip node is configured."; |
| description | | description |
| "Lowest nexthop IP is active"; | | "Lowest nexthop IP is active"; |
| } | | } |
| container highest-ip { | | container highest-ip { |
| must "not(../lowest-ip or ../modulo)"; | | must "not(../lowest-ip or ../modulo)"; |
| presence "Indicates a highest-ip node is configured."; | | presence "Indicates a highest-ip node is configured."; |
| description | | description |
| "Highest nexthop IP is active"; | | "Highest nexthop IP is active"; |
| } | | } |
| container modulo { | | container modulo { |
| must "not(../lowest-ip or ../highest-ip)"; | | must "not(../lowest-ip or ../highest-ip)"; |
| presence "Indicates a modulo node is configured."; | | presence "Indicates a modulo node is configured."; |
| description | | description |
| "EVI modulo of nexthops cardinality is active"; | | "EVI modulo of nexthops cardinality is active"; |
| } | | } |
| } | | } |
| n | | n | container advertise-mac { |
| | | presence "Indicates a advertise-mac node is configured."; |
| | | description |
| | | "Configure EVPN Instance MAC advertisement"; |
| | | container bvi-mac { |
| | | presence "Indicates a bvi-mac node is configured."; |
| | | description |
| | | "Advertise local MAC and BVI MAC routes"; |
| | | } |
| | | } |
| | | container unknown-unicast-suppression { |
| | | presence "Indicates a unknown-unicast-suppression node is configured."; |
| | | description |
| | | "Enabling unknown unicast suppression"; |
| | | } |
| | | container control-word-disable { |
| | | presence "Indicates a control-word-disable node is configured."; |
| | | description |
| | | "Disabling control-word"; |
| | | } |
| container ignore-mtu-mismatch { | | container ignore-mtu-mismatch { |
| presence "Indicates a ignore-mtu-mismatch node is configured."; | | presence "Indicates a ignore-mtu-mismatch node is configured."; |
| description | | description |
| "Ignore mismatch of local and remote MTUs"; | | "Ignore mismatch of local and remote MTUs"; |
| container disable-deprecated { | | container disable-deprecated { |
| presence "Indicates a disable-deprecated node is configured."; | | presence "Indicates a disable-deprecated node is configured."; |
| description | | description |
| "Disables ingoring mismatch of local and remote MTUs (deprecated)"; | | "Disables ingoring mismatch of local and remote MTUs (deprecated)"; |
| } | | } |
| } | | } |
| container enforce-mtu-match { | | container enforce-mtu-match { |
| presence "Indicates a enforce-mtu-match node is configured."; | | presence "Indicates a enforce-mtu-match node is configured."; |
| description | | description |
| "Enforce matching of local and remote MTUs"; | | "Enforce matching of local and remote MTUs"; |
| } | | } |
| container transmit-mtu-zero { | | container transmit-mtu-zero { |
| presence "Indicates a transmit-mtu-zero node is configured."; | | presence "Indicates a transmit-mtu-zero node is configured."; |
| description | | description |
| "Transmit MTU zero to remote instead of actual local MTU"; | | "Transmit MTU zero to remote instead of actual local MTU"; |
| container disable-deprecated { | | container disable-deprecated { |
| presence "Indicates a disable-deprecated node is configured."; | | presence "Indicates a disable-deprecated node is configured."; |
| description | | description |
| "Disables transmitting MTU zero to remote instead of actual local MTU (deprecated)"; | | "Disables transmitting MTU zero to remote instead of actual local MTU (deprecated)"; |
| } | | } |
| } | | } |
| container transmit-l2-mtu { | | container transmit-l2-mtu { |
| presence "Indicates a transmit-l2-mtu node is configured."; | | presence "Indicates a transmit-l2-mtu node is configured."; |
| description | | description |
| "Transmit L2 MTU of attachment circuit"; | | "Transmit L2 MTU of attachment circuit"; |
| } | | } |
| n | | n | container re-origination-disable { |
| | | presence "Indicates a re-origination-disable node is configured."; |
| | | description |
| | | "Disable route re-origination"; |
| | | } |
| container vrf { | | container vrf { |
| description | | description |
| "Enable EVPN instance for layer-3 route synchronization."; | | "Enable EVPN instance for layer-3 route synchronization."; |
| container default { | | container default { |
| presence "Indicates a default node is configured."; | | presence "Indicates a default node is configured."; |
| description | | description |
| "EVPN Instance for the default VRF"; | | "EVPN Instance for the default VRF"; |
| } | | } |
| } | | } |
| n | container locators { | n | container multicast { |
| | | presence "Indicates a multicast node is configured."; |
| | | description |
| | | "Configure EVPN Instance Multicast"; |
| | | container source-connected { |
| | | presence "Indicates a source-connected node is configured."; |
| | | description |
| | | "Multicast traffic source connected"; |
| | | } |
| | | } |
| | | container proxy { |
| | | presence "Indicates a proxy node is configured."; |
| | | description |
| | | "Configure EVPN Instance Proxy"; |
| | | container igmp-snooping { |
| | | presence "Indicates a igmp-snooping node is configured."; |
| | | description |
| | | "Proxy mode for IGMP-Snooping (selective multicast)"; |
| | | } |
| | | } |
| | | container etree { |
| | | presence "Indicates a etree node is configured."; |
| | | description |
| | | "Configure EVPN Instance E-Tree"; |
| | | container leaf { |
| | | presence "Indicates a leaf node is configured."; |
| | | description |
| | | "Designate EVPN Instance as EVPN E-Tree Leaf Site"; |
| | | } |
| | | container rt-leaf { |
| | | presence "Indicates a rt-leaf node is configured."; |
| | | description |
| | | "Designate EVPN Instance as EVPN E-Tree Route-Target Leaf Site"; |
| | | } |
| | | } |
| | | leaf locator { |
| | | type xr:Cisco-ios-xr-string { |
| | | length "1..58" { |
| | | description |
| | | "Specify locator name"; |
| | | } |
| | | pattern "[a-z0-9A-Z][a-z0-9A-Z_.:]*"; |
| | | } |
| description | | description |
| "EVI locator to use for EVPN SID allocation"; | | "EVI locator to use for EVPN SID allocation"; |
| n | list locator { | n | } |
| key "locator-name"; | | container vpws-single-active-backup-suppression { |
| | | presence "Indicates a vpws-single-active-backup-suppression node is configured."; |
| description | | description |
| "EVI locator to use for EVPN SID allocation"; | | "Disables Non-DF EVI/EAD routes from being advertised in EVPN-VPWS Single-Active. Used for backwards-compatibility."; |
| leaf locator-name { | | |
| type xr:Cisco-ios-xr-string { | | |
| length "1..58" { | | |
| description | | |
| "Specify locator name"; | | |
| } | | |
| pattern "[a-z0-9A-Z][a-z0-9A-Z_.:]*"; | | |
| } | | |
| description | | |
| "EVI locator to use for EVPN SID allocation"; | | |
| } | | |
| container usid { | | |
| description | | |
| "Configure the uSID wide function knob"; | | |
| container allocation { | | |
| description | | |
| "Set the allocation types associated with uSID"; | | |
| container wide-local-id-block { | | |
| presence "Indicates a wide-local-id-block node is configured."; | | |
| description | | |
| "Enable uSID wide function knob for the locator"; | | |
| } | | |
| } | | |
| } | | |
| } | | |
| } | | } |
| container bvi-coupled-mode { | | container bvi-coupled-mode { |
| presence "Indicates a bvi-coupled-mode node is configured."; | | presence "Indicates a bvi-coupled-mode node is configured."; |
| description | | description |
| "Couples BVI state to the core EVPN Instance state"; | | "Couples BVI state to the core EVPN Instance state"; |
| } | | } |
| } | | } |
| } | | } |
| list evi { | | list evi { |
| key "vpn-id"; | | key "vpn-id"; |
| description | | description |
| "Configure EVPN Instance VPN ID"; | | "Configure EVPN Instance VPN ID"; |
| leaf vpn-id { | | leaf vpn-id { |
| type uint32 { | | type uint32 { |
| range "1..65534" { | | range "1..65534" { |
| description | | description |
| "EVPN Instance VPN ID value"; | | "EVPN Instance VPN ID value"; |
| } | | } |
| } | | } |
| description | | description |
| "Configure EVPN Instance VPN ID"; | | "Configure EVPN Instance VPN ID"; |
| } | | } |
| container bgp { | | container bgp { |
| presence "Indicates a bgp node is configured."; | | presence "Indicates a bgp node is configured."; |
| description | | description |
| "Configure BGP"; | | "Configure BGP"; |
| container rd { | | container rd { |
| description | | description |
| "Set the Route Distinguisher"; | | "Set the Route Distinguisher"; |
| leaf two-byte-as-number { | | leaf two-byte-as-number { |
| type uint32 { | | type uint32 { |
| range "1..65535" { | | range "1..65535" { |
| description | | description |
| "Two Byte AS Number"; | | "Two Byte AS Number"; |
| } | | } |
| } | | } |
| n | must "not(../four-byte-as-number or ../ipv4-address) and ../two-byte-as-assigned-number"; | n | must "not(../four-byte-as-number or ../ipv4-address)"; |
| description | | description |
| "Two Byte AS Number"; | | "Two Byte AS Number"; |
| } | | } |
| leaf two-byte-as-assigned-number { | | leaf two-byte-as-assigned-number { |
| type uint32 { | | type uint32 { |
| range "0..4294967295" { | | range "0..4294967295" { |
| description | | description |
| "AS:nn (hex or decimal format)"; | | "AS:nn (hex or decimal format)"; |
| } | | } |
| } | | } |
| must "../two-byte-as-number"; | | must "../two-byte-as-number"; |
| description | | description |
| "AS:nn (hex or decimal format)"; | | "AS:nn (hex or decimal format)"; |
| } | | } |
| leaf four-byte-as-number { | | leaf four-byte-as-number { |
| type uint32 { | | type uint32 { |
| range "65536..4294967295" { | | range "65536..4294967295" { |
| description | | description |
| "Four Byte AS number"; | | "Four Byte AS number"; |
| } | | } |
| } | | } |
| n | must "not(../two-byte-as-number or ../ipv4-address) and ../four-byte-as-assigned-number"; | n | must "not(../two-byte-as-number or ../ipv4-address)"; |
| description | | description |
| "Four Byte AS number"; | | "Four Byte AS number"; |
| } | | } |
| leaf four-byte-as-assigned-number { | | leaf four-byte-as-assigned-number { |
| type uint32 { | | type uint32 { |
| range "0..65535" { | | range "0..65535" { |
| description | | description |
| "AS:nn (hex or decimal format)"; | | "AS:nn (hex or decimal format)"; |
| } | | } |
| } | | } |
| must "../four-byte-as-number"; | | must "../four-byte-as-number"; |
| description | | description |
| "AS:nn (hex or decimal format)"; | | "AS:nn (hex or decimal format)"; |
| } | | } |
| leaf ipv4-address { | | leaf ipv4-address { |
| type inet:ipv4-address-no-zone; | | type inet:ipv4-address-no-zone; |
| n | must "not(../two-byte-as-number or ../four-byte-as-number) and ../ipv4-address-assigned-number"; | n | must "not(../two-byte-as-number or ../four-byte-as-number)"; |
| description | | description |
| "IP address"; | | "IP address"; |
| } | | } |
| leaf ipv4-address-assigned-number { | | leaf ipv4-address-assigned-number { |
| type uint32 { | | type uint32 { |
| range "0..65535" { | | range "0..65535" { |
| description | | description |
| "IP-address:nn (hex or decimal format)"; | | "IP-address:nn (hex or decimal format)"; |
| } | | } |
| } | | } |
| must "../ipv4-address"; | | must "../ipv4-address"; |
| description | | description |
| "IP-address:nn (hex or decimal format)"; | | "IP-address:nn (hex or decimal format)"; |
| } | | } |
| } | | } |
| container route-target { | | container route-target { |
| description | | description |
| "Set the Route Target"; | | "Set the Route Target"; |
| container two-byte-as-rts { | | container two-byte-as-rts { |
| description | | description |
| "Two Byte AS Number Route Target"; | | "Two Byte AS Number Route Target"; |
| list two-byte-as-rt { | | list two-byte-as-rt { |
| key "two-byte-as-number assigned-number"; | | key "two-byte-as-number assigned-number"; |
| description | | description |
| "Two Byte AS Number Route Target"; | | "Two Byte AS Number Route Target"; |
| leaf two-byte-as-number { | | leaf two-byte-as-number { |
| type uint32 { | | type uint32 { |
| range "1..65535"; | | range "1..65535"; |
| } | | } |
| description | | description |
| "Two Byte AS Number"; | | "Two Byte AS Number"; |
| } | | } |
| leaf assigned-number { | | leaf assigned-number { |
| type uint32 { | | type uint32 { |
| range "0..4294967295" { | | range "0..4294967295" { |
| description | | description |
| "AS:nn (hex or decimal format)"; | | "AS:nn (hex or decimal format)"; |
| } | | } |
| } | | } |
| description | | description |
| "AS:nn (hex or decimal format)"; | | "AS:nn (hex or decimal format)"; |
| } | | } |
| } | | } |
| } | | } |
| container four-byte-as-rts { | | container four-byte-as-rts { |
| description | | description |
| "Four Byte AS number Route Target"; | | "Four Byte AS number Route Target"; |
| list four-byte-as-rt { | | list four-byte-as-rt { |
| key "four-byte-as-number assigned-number"; | | key "four-byte-as-number assigned-number"; |
| description | | description |
| "Four Byte AS number Route Target"; | | "Four Byte AS number Route Target"; |
| leaf four-byte-as-number { | | leaf four-byte-as-number { |
| type uint32 { | | type uint32 { |
| range "65536..4294967295"; | | range "65536..4294967295"; |
| } | | } |
| description | | description |
| "Four Byte AS number"; | | "Four Byte AS number"; |
| } | | } |
| leaf assigned-number { | | leaf assigned-number { |
| type uint32 { | | type uint32 { |
| range "0..65535" { | | range "0..65535" { |
| description | | description |
| "AS:nn (hex or decimal format)"; | | "AS:nn (hex or decimal format)"; |
| } | | } |
| } | | } |
| description | | description |
| "AS:nn (hex or decimal format)"; | | "AS:nn (hex or decimal format)"; |
| } | | } |
| } | | } |
| } | | } |
| container ipv4-address-rts { | | container ipv4-address-rts { |
| description | | description |
| "IP address Route Target"; | | "IP address Route Target"; |
| list ipv4-address-rt { | | list ipv4-address-rt { |
| key "ipv4-address assigned-number"; | | key "ipv4-address assigned-number"; |
| description | | description |
| "IP address"; | | "IP address"; |
| leaf ipv4-address { | | leaf ipv4-address { |
| type inet:ipv4-address-no-zone; | | type inet:ipv4-address-no-zone; |
| description | | description |
| "IP address"; | | "IP address"; |
| } | | } |
| leaf assigned-number { | | leaf assigned-number { |
| type uint32 { | | type uint32 { |
| range "0..65535" { | | range "0..65535" { |
| description | | description |
| "IP-address:nn (hex or decimal format)"; | | "IP-address:nn (hex or decimal format)"; |
| } | | } |
| } | | } |
| description | | description |
| "IP-address:nn (hex or decimal format)"; | | "IP-address:nn (hex or decimal format)"; |
| } | | } |
| } | | } |
| } | | } |
| container none { | | container none { |
| presence "Indicates a none node is configured."; | | presence "Indicates a none node is configured."; |
| description | | description |
| "Withhold BGP RTs"; | | "Withhold BGP RTs"; |
| } | | } |
| container import { | | container import { |
| description | | description |
| "Import Route Target"; | | "Import Route Target"; |
| container two-byte-as-rts { | | container two-byte-as-rts { |
| description | | description |
| "Two Byte AS Number Route Target"; | | "Two Byte AS Number Route Target"; |
| list two-byte-as-rt { | | list two-byte-as-rt { |
| key "two-byte-as-number assigned-number"; | | key "two-byte-as-number assigned-number"; |
| description | | description |
| "Two Byte AS Number Route Target"; | | "Two Byte AS Number Route Target"; |
| leaf two-byte-as-number { | | leaf two-byte-as-number { |
| type uint32 { | | type uint32 { |
| range "1..65535"; | | range "1..65535"; |
| } | | } |
| description | | description |
| "Two Byte AS Number"; | | "Two Byte AS Number"; |
| } | | } |
| leaf assigned-number { | | leaf assigned-number { |
| type uint32 { | | type uint32 { |
| range "0..4294967295" { | | range "0..4294967295" { |
| description | | description |
| "AS:nn (hex or decimal format)"; | | "AS:nn (hex or decimal format)"; |
| } | | } |
| } | | } |
| description | | description |
| "AS:nn (hex or decimal format)"; | | "AS:nn (hex or decimal format)"; |
| } | | } |
| } | | } |
| } | | } |
| container four-byte-as-rts { | | container four-byte-as-rts { |
| description | | description |
| "Four Byte AS number Route Target"; | | "Four Byte AS number Route Target"; |
| list four-byte-as-rt { | | list four-byte-as-rt { |
| key "four-byte-as-number assigned-number"; | | key "four-byte-as-number assigned-number"; |
| description | | description |
| "Four Byte AS number Route Target"; | | "Four Byte AS number Route Target"; |
| leaf four-byte-as-number { | | leaf four-byte-as-number { |
| type uint32 { | | type uint32 { |
| range "65536..4294967295"; | | range "65536..4294967295"; |
| } | | } |
| description | | description |
| "Four Byte AS number"; | | "Four Byte AS number"; |
| } | | } |
| leaf assigned-number { | | leaf assigned-number { |
| type uint32 { | | type uint32 { |
| range "0..65535" { | | range "0..65535" { |
| description | | description |
| "AS:nn (hex or decimal format)"; | | "AS:nn (hex or decimal format)"; |
| } | | } |
| } | | } |
| description | | description |
| "AS:nn (hex or decimal format)"; | | "AS:nn (hex or decimal format)"; |
| } | | } |
| } | | } |
| } | | } |
| container ipv4-address-rts { | | container ipv4-address-rts { |
| description | | description |
| "IP address Route Target"; | | "IP address Route Target"; |
| list ipv4-address-rt { | | list ipv4-address-rt { |
| key "ipv4-address assigned-number"; | | key "ipv4-address assigned-number"; |
| description | | description |
| "IP address"; | | "IP address"; |
| leaf ipv4-address { | | leaf ipv4-address { |
| type inet:ipv4-address-no-zone; | | type inet:ipv4-address-no-zone; |
| description | | description |
| "IP address"; | | "IP address"; |
| } | | } |
| leaf assigned-number { | | leaf assigned-number { |
| type uint32 { | | type uint32 { |
| range "0..65535" { | | range "0..65535" { |
| description | | description |
| "IP-address:nn (hex or decimal format)"; | | "IP-address:nn (hex or decimal format)"; |
| } | | } |
| } | | } |
| description | | description |
| "IP-address:nn (hex or decimal format)"; | | "IP-address:nn (hex or decimal format)"; |
| } | | } |
| } | | } |
| } | | } |
| container none { | | container none { |
| presence "Indicates a none node is configured."; | | presence "Indicates a none node is configured."; |
| description | | description |
| "Withhold BGP RTs"; | | "Withhold BGP RTs"; |
| } | | } |
| } | | } |
| container export { | | container export { |
| description | | description |
| "Export Route Target"; | | "Export Route Target"; |
| container two-byte-as-rts { | | container two-byte-as-rts { |
| description | | description |
| "Two Byte AS Number Route Target"; | | "Two Byte AS Number Route Target"; |
| list two-byte-as-rt { | | list two-byte-as-rt { |
| key "two-byte-as-number assigned-number"; | | key "two-byte-as-number assigned-number"; |
| description | | description |
| "Two Byte AS Number Route Target"; | | "Two Byte AS Number Route Target"; |
| leaf two-byte-as-number { | | leaf two-byte-as-number { |
| type uint32 { | | type uint32 { |
| range "1..65535"; | | range "1..65535"; |
| } | | } |
| description | | description |
| "Two Byte AS Number"; | | "Two Byte AS Number"; |
| } | | } |
| leaf assigned-number { | | leaf assigned-number { |
| type uint32 { | | type uint32 { |
| range "0..4294967295" { | | range "0..4294967295" { |
| description | | description |
| "AS:nn (hex or decimal format)"; | | "AS:nn (hex or decimal format)"; |
| } | | } |
| } | | } |
| description | | description |
| "AS:nn (hex or decimal format)"; | | "AS:nn (hex or decimal format)"; |
| } | | } |
| } | | } |
| } | | } |
| container four-byte-as-rts { | | container four-byte-as-rts { |
| description | | description |
| "Four Byte AS number Route Target"; | | "Four Byte AS number Route Target"; |
| list four-byte-as-rt { | | list four-byte-as-rt { |
| key "four-byte-as-number assigned-number"; | | key "four-byte-as-number assigned-number"; |
| description | | description |
| "Four Byte AS number Route Target"; | | "Four Byte AS number Route Target"; |
| leaf four-byte-as-number { | | leaf four-byte-as-number { |
| type uint32 { | | type uint32 { |
| range "65536..4294967295"; | | range "65536..4294967295"; |
| } | | } |
| description | | description |
| "Four Byte AS number"; | | "Four Byte AS number"; |
| } | | } |
| leaf assigned-number { | | leaf assigned-number { |
| type uint32 { | | type uint32 { |
| range "0..65535" { | | range "0..65535" { |
| description | | description |
| "AS:nn (hex or decimal format)"; | | "AS:nn (hex or decimal format)"; |
| } | | } |
| } | | } |
| description | | description |
| "AS:nn (hex or decimal format)"; | | "AS:nn (hex or decimal format)"; |
| } | | } |
| } | | } |
| } | | } |
| container ipv4-address-rts { | | container ipv4-address-rts { |
| description | | description |
| "IP address Route Target"; | | "IP address Route Target"; |
| list ipv4-address-rt { | | list ipv4-address-rt { |
| key "ipv4-address assigned-number"; | | key "ipv4-address assigned-number"; |
| description | | description |
| "IP address"; | | "IP address"; |
| leaf ipv4-address { | | leaf ipv4-address { |
| type inet:ipv4-address-no-zone; | | type inet:ipv4-address-no-zone; |
| description | | description |
| "IP address"; | | "IP address"; |
| } | | } |
| leaf assigned-number { | | leaf assigned-number { |
| type uint32 { | | type uint32 { |
| range "0..65535" { | | range "0..65535" { |
| description | | description |
| "IP-address:nn (hex or decimal format)"; | | "IP-address:nn (hex or decimal format)"; |
| } | | } |
| } | | } |
| description | | description |
| "IP-address:nn (hex or decimal format)"; | | "IP-address:nn (hex or decimal format)"; |
| } | | } |
| } | | } |
| } | | } |
| container none { | | container none { |
| presence "Indicates a none node is configured."; | | presence "Indicates a none node is configured."; |
| description | | description |
| "Withhold BGP RTs"; | | "Withhold BGP RTs"; |
| } | | } |
| } | | } |
| } | | } |
| leaf table-policy { | | leaf table-policy { |
| type xr:Route-policy-name; | | type xr:Route-policy-name; |
| description | | description |
| "Configure policy for installation of forwarding data to L2FIB"; | | "Configure policy for installation of forwarding data to L2FIB"; |
| } | | } |
| container implicit-import-disable { | | container implicit-import-disable { |
| presence "Indicates a implicit-import-disable node is configured."; | | presence "Indicates a implicit-import-disable node is configured."; |
| description | | description |
| "Disable BGP implicit import"; | | "Disable BGP implicit import"; |
| } | | } |
| container route-policy { | | container route-policy { |
| description | | description |
| "Apply route policy"; | | "Apply route policy"; |
| leaf export { | | leaf export { |
| type xr:Route-policy-name; | | type xr:Route-policy-name; |
| description | | description |
| "Export route policy"; | | "Export route policy"; |
| } | | } |
| leaf import { | | leaf import { |
| type xr:Route-policy-name; | | type xr:Route-policy-name; |
| description | | description |
| "Import route policy"; | | "Import route policy"; |
| } | | } |
| } | | } |
| } | | } |
| leaf description { | | leaf description { |
| type string { | | type string { |
| length "1..64" { | | length "1..64" { |
| description | | description |
| "EVPN Instance description string"; | | "EVPN Instance description string"; |
| } | | } |
| } | | } |
| description | | description |
| "Description for this EVPN Instance"; | | "Description for this EVPN Instance"; |
| n | | n | } |
| | | container load-balancing { |
| | | presence "Indicates a load-balancing node is configured."; |
| | | description |
| | | "Configure EVPN Instance load-balancing"; |
| | | container flow-label { |
| | | description |
| | | "Flow Label load balancing"; |
| | | container static { |
| | | presence "Indicates a static node is configured."; |
| | | description |
| | | "Static configuration of Flow Label"; |
| | | } |
| | | } |
| } | | } |
| container ecmp-disable-deprecated { | | container ecmp-disable-deprecated { |
| presence "Indicates a ecmp-disable-deprecated node is configured."; | | presence "Indicates a ecmp-disable-deprecated node is configured."; |
| description | | description |
| "Deprecated: migrate to <evpn evi N preferrred-nexthop modulo>"; | | "Deprecated: migrate to <evpn evi N preferrred-nexthop modulo>"; |
| } | | } |
| container preferred-nexthop { | | container preferred-nexthop { |
| description | | description |
| "Elect unique active path from ECMP candidate list"; | | "Elect unique active path from ECMP candidate list"; |
| container lowest-ip { | | container lowest-ip { |
| must "not(../highest-ip or ../modulo)"; | | must "not(../highest-ip or ../modulo)"; |
| presence "Indicates a lowest-ip node is configured."; | | presence "Indicates a lowest-ip node is configured."; |
| description | | description |
| "Lowest nexthop IP is active"; | | "Lowest nexthop IP is active"; |
| } | | } |
| container highest-ip { | | container highest-ip { |
| must "not(../lowest-ip or ../modulo)"; | | must "not(../lowest-ip or ../modulo)"; |
| presence "Indicates a highest-ip node is configured."; | | presence "Indicates a highest-ip node is configured."; |
| description | | description |
| "Highest nexthop IP is active"; | | "Highest nexthop IP is active"; |
| } | | } |
| container modulo { | | container modulo { |
| must "not(../lowest-ip or ../highest-ip)"; | | must "not(../lowest-ip or ../highest-ip)"; |
| presence "Indicates a modulo node is configured."; | | presence "Indicates a modulo node is configured."; |
| description | | description |
| "EVI modulo of nexthops cardinality is active"; | | "EVI modulo of nexthops cardinality is active"; |
| } | | } |
| } | | } |
| n | | n | container advertise-mac { |
| | | presence "Indicates a advertise-mac node is configured."; |
| | | description |
| | | "Configure EVPN Instance MAC advertisement"; |
| | | container bvi-mac { |
| | | presence "Indicates a bvi-mac node is configured."; |
| | | description |
| | | "Advertise local MAC and BVI MAC routes"; |
| | | } |
| | | } |
| | | container unknown-unicast-suppression { |
| | | presence "Indicates a unknown-unicast-suppression node is configured."; |
| | | description |
| | | "Enabling unknown unicast suppression"; |
| | | } |
| | | container control-word-disable { |
| | | presence "Indicates a control-word-disable node is configured."; |
| | | description |
| | | "Disabling control-word"; |
| | | } |
| container ignore-mtu-mismatch { | | container ignore-mtu-mismatch { |
| presence "Indicates a ignore-mtu-mismatch node is configured."; | | presence "Indicates a ignore-mtu-mismatch node is configured."; |
| description | | description |
| "Ignore mismatch of local and remote MTUs"; | | "Ignore mismatch of local and remote MTUs"; |
| container disable-deprecated { | | container disable-deprecated { |
| presence "Indicates a disable-deprecated node is configured."; | | presence "Indicates a disable-deprecated node is configured."; |
| description | | description |
| "Disables ingoring mismatch of local and remote MTUs (deprecated)"; | | "Disables ingoring mismatch of local and remote MTUs (deprecated)"; |
| } | | } |
| } | | } |
| container enforce-mtu-match { | | container enforce-mtu-match { |
| presence "Indicates a enforce-mtu-match node is configured."; | | presence "Indicates a enforce-mtu-match node is configured."; |
| description | | description |
| "Enforce matching of local and remote MTUs"; | | "Enforce matching of local and remote MTUs"; |
| } | | } |
| container transmit-mtu-zero { | | container transmit-mtu-zero { |
| presence "Indicates a transmit-mtu-zero node is configured."; | | presence "Indicates a transmit-mtu-zero node is configured."; |
| description | | description |
| "Transmit MTU zero to remote instead of actual local MTU"; | | "Transmit MTU zero to remote instead of actual local MTU"; |
| container disable-deprecated { | | container disable-deprecated { |
| presence "Indicates a disable-deprecated node is configured."; | | presence "Indicates a disable-deprecated node is configured."; |
| description | | description |
| "Disables transmitting MTU zero to remote instead of actual local MTU (deprecated)"; | | "Disables transmitting MTU zero to remote instead of actual local MTU (deprecated)"; |
| } | | } |
| } | | } |
| container transmit-l2-mtu { | | container transmit-l2-mtu { |
| presence "Indicates a transmit-l2-mtu node is configured."; | | presence "Indicates a transmit-l2-mtu node is configured."; |
| description | | description |
| "Transmit L2 MTU of attachment circuit"; | | "Transmit L2 MTU of attachment circuit"; |
| } | | } |
| n | | n | container re-origination-disable { |
| | | presence "Indicates a re-origination-disable node is configured."; |
| | | description |
| | | "Disable route re-origination"; |
| | | } |
| container vrf { | | container vrf { |
| description | | description |
| "Enable EVPN instance for layer-3 route synchronization."; | | "Enable EVPN instance for layer-3 route synchronization."; |
| container default { | | container default { |
| presence "Indicates a default node is configured."; | | presence "Indicates a default node is configured."; |
| description | | description |
| "EVPN Instance for the default VRF"; | | "EVPN Instance for the default VRF"; |
| } | | } |
| } | | } |
| n | container locators { | n | container multicast { |
| | | presence "Indicates a multicast node is configured."; |
| | | description |
| | | "Configure EVPN Instance Multicast"; |
| | | container source-connected { |
| | | presence "Indicates a source-connected node is configured."; |
| | | description |
| | | "Multicast traffic source connected"; |
| | | } |
| | | } |
| | | container proxy { |
| | | presence "Indicates a proxy node is configured."; |
| | | description |
| | | "Configure EVPN Instance Proxy"; |
| | | container igmp-snooping { |
| | | presence "Indicates a igmp-snooping node is configured."; |
| | | description |
| | | "Proxy mode for IGMP-Snooping (selective multicast)"; |
| | | } |
| | | } |
| | | container etree { |
| | | presence "Indicates a etree node is configured."; |
| | | description |
| | | "Configure EVPN Instance E-Tree"; |
| | | container leaf { |
| | | presence "Indicates a leaf node is configured."; |
| | | description |
| | | "Designate EVPN Instance as EVPN E-Tree Leaf Site"; |
| | | } |
| | | container rt-leaf { |
| | | presence "Indicates a rt-leaf node is configured."; |
| | | description |
| | | "Designate EVPN Instance as EVPN E-Tree Route-Target Leaf Site"; |
| | | } |
| | | } |
| | | leaf locator { |
| | | type xr:Cisco-ios-xr-string { |
| | | length "1..58" { |
| | | description |
| | | "Specify locator name"; |
| | | } |
| | | pattern "[a-z0-9A-Z][a-z0-9A-Z_.:]*"; |
| | | } |
| description | | description |
| "EVI locator to use for EVPN SID allocation"; | | "EVI locator to use for EVPN SID allocation"; |
| n | list locator { | n | } |
| key "locator-name"; | | container vpws-single-active-backup-suppression { |
| | | presence "Indicates a vpws-single-active-backup-suppression node is configured."; |
| description | | description |
| "EVI locator to use for EVPN SID allocation"; | | "Disables Non-DF EVI/EAD routes from being advertised in EVPN-VPWS Single-Active. Used for backwards-compatibility."; |
| leaf locator-name { | | |
| type xr:Cisco-ios-xr-string { | | |
| length "1..58" { | | |
| description | | |
| "Specify locator name"; | | |
| } | | |
| pattern "[a-z0-9A-Z][a-z0-9A-Z_.:]*"; | | |
| } | | |
| description | | |
| "EVI locator to use for EVPN SID allocation"; | | |
| } | | |
| container usid { | | |
| description | | |
| "Configure the uSID wide function knob"; | | |
| container allocation { | | |
| description | | |
| "Set the allocation types associated with uSID"; | | |
| container wide-local-id-block { | | |
| presence "Indicates a wide-local-id-block node is configured."; | | |
| description | | |
| "Enable uSID wide function knob for the locator"; | | |
| } | | |
| } | | |
| } | | |
| } | | |
| } | | } |
| container bvi-coupled-mode { | | container bvi-coupled-mode { |
| presence "Indicates a bvi-coupled-mode node is configured."; | | presence "Indicates a bvi-coupled-mode node is configured."; |
| description | | description |
| "Couples BVI state to the core EVPN Instance state"; | | "Couples BVI state to the core EVPN Instance state"; |
| } | | } |
| } | | } |
| } | | } |
| container vnis { | | container vnis { |
| description | | description |
| "Configure EVPN VNI"; | | "Configure EVPN VNI"; |
| container stitching { | | container stitching { |
| description | | description |
| "Treat EVPN Instance as Stitching side"; | | "Treat EVPN Instance as Stitching side"; |
| list vni { | | list vni { |
| key "vni-id"; | | key "vni-id"; |
| description | | description |
| "Configure EVPN VNI"; | | "Configure EVPN VNI"; |
| leaf vni-id { | | leaf vni-id { |
| type uint32 { | | type uint32 { |
| range "1..16777215" { | | range "1..16777215" { |
| description | | description |
| "EVPN VNI value"; | | "EVPN VNI value"; |
| } | | } |
| } | | } |
| description | | description |
| "Configure EVPN VNI"; | | "Configure EVPN VNI"; |
| } | | } |
| container bgp { | | container bgp { |
| presence "Indicates a bgp node is configured."; | | presence "Indicates a bgp node is configured."; |
| description | | description |
| "Configure BGP"; | | "Configure BGP"; |
| container rd { | | container rd { |
| description | | description |
| "Set the Route Distinguisher"; | | "Set the Route Distinguisher"; |
| leaf two-byte-as-number { | | leaf two-byte-as-number { |
| type uint32 { | | type uint32 { |
| range "1..65535" { | | range "1..65535" { |
| description | | description |
| "Two Byte AS Number"; | | "Two Byte AS Number"; |
| } | | } |
| } | | } |
| n | must "not(../four-byte-as-number or ../ipv4-address) and ../two-byte-as-assigned-number"; | n | must "not(../four-byte-as-number or ../ipv4-address)"; |
| description | | description |
| "Two Byte AS Number"; | | "Two Byte AS Number"; |
| } | | } |
| leaf two-byte-as-assigned-number { | | leaf two-byte-as-assigned-number { |
| type uint32 { | | type uint32 { |
| range "0..4294967295" { | | range "0..4294967295" { |
| description | | description |
| "AS:nn (hex or decimal format)"; | | "AS:nn (hex or decimal format)"; |
| } | | } |
| } | | } |
| must "../two-byte-as-number"; | | must "../two-byte-as-number"; |
| description | | description |
| "AS:nn (hex or decimal format)"; | | "AS:nn (hex or decimal format)"; |
| } | | } |
| leaf four-byte-as-number { | | leaf four-byte-as-number { |
| type uint32 { | | type uint32 { |
| range "65536..4294967295" { | | range "65536..4294967295" { |
| description | | description |
| "Four Byte AS number"; | | "Four Byte AS number"; |
| } | | } |
| } | | } |
| n | must "not(../two-byte-as-number or ../ipv4-address) and ../four-byte-as-assigned-number"; | n | must "not(../two-byte-as-number or ../ipv4-address)"; |
| description | | description |
| "Four Byte AS number"; | | "Four Byte AS number"; |
| } | | } |
| leaf four-byte-as-assigned-number { | | leaf four-byte-as-assigned-number { |
| type uint32 { | | type uint32 { |
| range "0..65535" { | | range "0..65535" { |
| description | | description |
| "AS:nn (hex or decimal format)"; | | "AS:nn (hex or decimal format)"; |
| } | | } |
| } | | } |
| must "../four-byte-as-number"; | | must "../four-byte-as-number"; |
| description | | description |
| "AS:nn (hex or decimal format)"; | | "AS:nn (hex or decimal format)"; |
| } | | } |
| leaf ipv4-address { | | leaf ipv4-address { |
| type inet:ipv4-address-no-zone; | | type inet:ipv4-address-no-zone; |
| n | must "not(../two-byte-as-number or ../four-byte-as-number) and ../ipv4-address-assigned-number"; | n | must "not(../two-byte-as-number or ../four-byte-as-number)"; |
| description | | description |
| "IP address"; | | "IP address"; |
| } | | } |
| leaf ipv4-address-assigned-number { | | leaf ipv4-address-assigned-number { |
| type uint32 { | | type uint32 { |
| range "0..65535" { | | range "0..65535" { |
| description | | description |
| "IP-address:nn (hex or decimal format)"; | | "IP-address:nn (hex or decimal format)"; |
| } | | } |
| } | | } |
| must "../ipv4-address"; | | must "../ipv4-address"; |
| description | | description |
| "IP-address:nn (hex or decimal format)"; | | "IP-address:nn (hex or decimal format)"; |
| } | | } |
| } | | } |
| container route-target { | | container route-target { |
| description | | description |
| "Set the Route Target"; | | "Set the Route Target"; |
| container two-byte-as-rts { | | container two-byte-as-rts { |
| description | | description |
| "Two Byte AS Number Route Target"; | | "Two Byte AS Number Route Target"; |
| list two-byte-as-rt { | | list two-byte-as-rt { |
| key "two-byte-as-number assigned-number"; | | key "two-byte-as-number assigned-number"; |
| description | | description |
| "Two Byte AS Number Route Target"; | | "Two Byte AS Number Route Target"; |
| leaf two-byte-as-number { | | leaf two-byte-as-number { |
| type uint32 { | | type uint32 { |
| range "1..65535"; | | range "1..65535"; |
| } | | } |
| description | | description |
| "Two Byte AS Number"; | | "Two Byte AS Number"; |
| } | | } |
| leaf assigned-number { | | leaf assigned-number { |
| type uint32 { | | type uint32 { |
| range "0..4294967295" { | | range "0..4294967295" { |
| description | | description |
| "AS:nn (hex or decimal format)"; | | "AS:nn (hex or decimal format)"; |
| } | | } |
| } | | } |
| description | | description |
| "AS:nn (hex or decimal format)"; | | "AS:nn (hex or decimal format)"; |
| } | | } |
| } | | } |
| } | | } |
| container four-byte-as-rts { | | container four-byte-as-rts { |
| description | | description |
| "Four Byte AS number Route Target"; | | "Four Byte AS number Route Target"; |
| list four-byte-as-rt { | | list four-byte-as-rt { |
| key "four-byte-as-number assigned-number"; | | key "four-byte-as-number assigned-number"; |
| description | | description |
| "Four Byte AS number Route Target"; | | "Four Byte AS number Route Target"; |
| leaf four-byte-as-number { | | leaf four-byte-as-number { |
| type uint32 { | | type uint32 { |
| range "65536..4294967295"; | | range "65536..4294967295"; |
| } | | } |
| description | | description |
| "Four Byte AS number"; | | "Four Byte AS number"; |
| } | | } |
| leaf assigned-number { | | leaf assigned-number { |
| type uint32 { | | type uint32 { |
| range "0..65535" { | | range "0..65535" { |
| description | | description |
| "AS:nn (hex or decimal format)"; | | "AS:nn (hex or decimal format)"; |
| } | | } |
| } | | } |
| description | | description |
| "AS:nn (hex or decimal format)"; | | "AS:nn (hex or decimal format)"; |
| } | | } |
| } | | } |
| } | | } |
| container ipv4-address-rts { | | container ipv4-address-rts { |
| description | | description |
| "IP address Route Target"; | | "IP address Route Target"; |
| list ipv4-address-rt { | | list ipv4-address-rt { |
| key "ipv4-address assigned-number"; | | key "ipv4-address assigned-number"; |
| description | | description |
| "IP address"; | | "IP address"; |
| leaf ipv4-address { | | leaf ipv4-address { |
| type inet:ipv4-address-no-zone; | | type inet:ipv4-address-no-zone; |
| description | | description |
| "IP address"; | | "IP address"; |
| } | | } |
| leaf assigned-number { | | leaf assigned-number { |
| type uint32 { | | type uint32 { |
| range "0..65535" { | | range "0..65535" { |
| description | | description |
| "IP-address:nn (hex or decimal format)"; | | "IP-address:nn (hex or decimal format)"; |
| } | | } |
| } | | } |
| description | | description |
| "IP-address:nn (hex or decimal format)"; | | "IP-address:nn (hex or decimal format)"; |
| } | | } |
| } | | } |
| } | | } |
| container none { | | container none { |
| presence "Indicates a none node is configured."; | | presence "Indicates a none node is configured."; |
| description | | description |
| "Withhold BGP RTs"; | | "Withhold BGP RTs"; |
| } | | } |
| container import { | | container import { |
| description | | description |
| "Import Route Target"; | | "Import Route Target"; |
| container two-byte-as-rts { | | container two-byte-as-rts { |
| description | | description |
| "Two Byte AS Number Route Target"; | | "Two Byte AS Number Route Target"; |
| list two-byte-as-rt { | | list two-byte-as-rt { |
| key "two-byte-as-number assigned-number"; | | key "two-byte-as-number assigned-number"; |
| description | | description |
| "Two Byte AS Number Route Target"; | | "Two Byte AS Number Route Target"; |
| leaf two-byte-as-number { | | leaf two-byte-as-number { |
| type uint32 { | | type uint32 { |
| range "1..65535"; | | range "1..65535"; |
| } | | } |
| description | | description |
| "Two Byte AS Number"; | | "Two Byte AS Number"; |
| } | | } |
| leaf assigned-number { | | leaf assigned-number { |
| type uint32 { | | type uint32 { |
| range "0..4294967295" { | | range "0..4294967295" { |
| description | | description |
| "AS:nn (hex or decimal format)"; | | "AS:nn (hex or decimal format)"; |
| } | | } |
| } | | } |
| description | | description |
| "AS:nn (hex or decimal format)"; | | "AS:nn (hex or decimal format)"; |
| } | | } |
| } | | } |
| } | | } |
| container four-byte-as-rts { | | container four-byte-as-rts { |
| description | | description |
| "Four Byte AS number Route Target"; | | "Four Byte AS number Route Target"; |
| list four-byte-as-rt { | | list four-byte-as-rt { |
| key "four-byte-as-number assigned-number"; | | key "four-byte-as-number assigned-number"; |
| description | | description |
| "Four Byte AS number Route Target"; | | "Four Byte AS number Route Target"; |
| leaf four-byte-as-number { | | leaf four-byte-as-number { |
| type uint32 { | | type uint32 { |
| range "65536..4294967295"; | | range "65536..4294967295"; |
| } | | } |
| description | | description |
| "Four Byte AS number"; | | "Four Byte AS number"; |
| } | | } |
| leaf assigned-number { | | leaf assigned-number { |
| type uint32 { | | type uint32 { |
| range "0..65535" { | | range "0..65535" { |
| description | | description |
| "AS:nn (hex or decimal format)"; | | "AS:nn (hex or decimal format)"; |
| } | | } |
| } | | } |
| description | | description |
| "AS:nn (hex or decimal format)"; | | "AS:nn (hex or decimal format)"; |
| } | | } |
| } | | } |
| } | | } |
| container ipv4-address-rts { | | container ipv4-address-rts { |
| description | | description |
| "IP address Route Target"; | | "IP address Route Target"; |
| list ipv4-address-rt { | | list ipv4-address-rt { |
| key "ipv4-address assigned-number"; | | key "ipv4-address assigned-number"; |
| description | | description |
| "IP address"; | | "IP address"; |
| leaf ipv4-address { | | leaf ipv4-address { |
| type inet:ipv4-address-no-zone; | | type inet:ipv4-address-no-zone; |
| description | | description |
| "IP address"; | | "IP address"; |
| } | | } |
| leaf assigned-number { | | leaf assigned-number { |
| type uint32 { | | type uint32 { |
| range "0..65535" { | | range "0..65535" { |
| description | | description |
| "IP-address:nn (hex or decimal format)"; | | "IP-address:nn (hex or decimal format)"; |
| } | | } |
| } | | } |
| description | | description |
| "IP-address:nn (hex or decimal format)"; | | "IP-address:nn (hex or decimal format)"; |
| } | | } |
| } | | } |
| } | | } |
| container none { | | container none { |
| presence "Indicates a none node is configured."; | | presence "Indicates a none node is configured."; |
| description | | description |
| "Withhold BGP RTs"; | | "Withhold BGP RTs"; |
| } | | } |
| } | | } |
| container export { | | container export { |
| description | | description |
| "Export Route Target"; | | "Export Route Target"; |
| container two-byte-as-rts { | | container two-byte-as-rts { |
| description | | description |
| "Two Byte AS Number Route Target"; | | "Two Byte AS Number Route Target"; |
| list two-byte-as-rt { | | list two-byte-as-rt { |
| key "two-byte-as-number assigned-number"; | | key "two-byte-as-number assigned-number"; |
| description | | description |
| "Two Byte AS Number Route Target"; | | "Two Byte AS Number Route Target"; |
| leaf two-byte-as-number { | | leaf two-byte-as-number { |
| type uint32 { | | type uint32 { |
| range "1..65535"; | | range "1..65535"; |
| } | | } |
| description | | description |
| "Two Byte AS Number"; | | "Two Byte AS Number"; |
| } | | } |
| leaf assigned-number { | | leaf assigned-number { |
| type uint32 { | | type uint32 { |
| range "0..4294967295" { | | range "0..4294967295" { |
| description | | description |
| "AS:nn (hex or decimal format)"; | | "AS:nn (hex or decimal format)"; |
| } | | } |
| } | | } |
| description | | description |
| "AS:nn (hex or decimal format)"; | | "AS:nn (hex or decimal format)"; |
| } | | } |
| } | | } |
| } | | } |
| container four-byte-as-rts { | | container four-byte-as-rts { |
| description | | description |
| "Four Byte AS number Route Target"; | | "Four Byte AS number Route Target"; |
| list four-byte-as-rt { | | list four-byte-as-rt { |
| key "four-byte-as-number assigned-number"; | | key "four-byte-as-number assigned-number"; |
| description | | description |
| "Four Byte AS number Route Target"; | | "Four Byte AS number Route Target"; |
| leaf four-byte-as-number { | | leaf four-byte-as-number { |
| type uint32 { | | type uint32 { |
| range "65536..4294967295"; | | range "65536..4294967295"; |
| } | | } |
| description | | description |
| "Four Byte AS number"; | | "Four Byte AS number"; |
| } | | } |
| leaf assigned-number { | | leaf assigned-number { |
| type uint32 { | | type uint32 { |
| range "0..65535" { | | range "0..65535" { |
| description | | description |
| "AS:nn (hex or decimal format)"; | | "AS:nn (hex or decimal format)"; |
| } | | } |
| } | | } |
| description | | description |
| "AS:nn (hex or decimal format)"; | | "AS:nn (hex or decimal format)"; |
| } | | } |
| } | | } |
| } | | } |
| container ipv4-address-rts { | | container ipv4-address-rts { |
| description | | description |
| "IP address Route Target"; | | "IP address Route Target"; |
| list ipv4-address-rt { | | list ipv4-address-rt { |
| key "ipv4-address assigned-number"; | | key "ipv4-address assigned-number"; |
| description | | description |
| "IP address"; | | "IP address"; |
| leaf ipv4-address { | | leaf ipv4-address { |
| type inet:ipv4-address-no-zone; | | type inet:ipv4-address-no-zone; |
| description | | description |
| "IP address"; | | "IP address"; |
| } | | } |
| leaf assigned-number { | | leaf assigned-number { |
| type uint32 { | | type uint32 { |
| range "0..65535" { | | range "0..65535" { |
| description | | description |
| "IP-address:nn (hex or decimal format)"; | | "IP-address:nn (hex or decimal format)"; |
| } | | } |
| } | | } |
| description | | description |
| "IP-address:nn (hex or decimal format)"; | | "IP-address:nn (hex or decimal format)"; |
| } | | } |
| } | | } |
| } | | } |
| container none { | | container none { |
| presence "Indicates a none node is configured."; | | presence "Indicates a none node is configured."; |
| description | | description |
| "Withhold BGP RTs"; | | "Withhold BGP RTs"; |
| } | | } |
| } | | } |
| } | | } |
| leaf table-policy { | | leaf table-policy { |
| type xr:Route-policy-name; | | type xr:Route-policy-name; |
| description | | description |
| "Configure policy for installation of forwarding data to L2FIB"; | | "Configure policy for installation of forwarding data to L2FIB"; |
| } | | } |
| container implicit-import-disable { | | container implicit-import-disable { |
| presence "Indicates a implicit-import-disable node is configured."; | | presence "Indicates a implicit-import-disable node is configured."; |
| description | | description |
| "Disable BGP implicit import"; | | "Disable BGP implicit import"; |
| } | | } |
| container route-policy { | | container route-policy { |
| description | | description |
| "Apply route policy"; | | "Apply route policy"; |
| leaf export { | | leaf export { |
| type xr:Route-policy-name; | | type xr:Route-policy-name; |
| description | | description |
| "Export route policy"; | | "Export route policy"; |
| } | | } |
| leaf import { | | leaf import { |
| type xr:Route-policy-name; | | type xr:Route-policy-name; |
| description | | description |
| "Import route policy"; | | "Import route policy"; |
| } | | } |
| } | | } |
| } | | } |
| leaf description { | | leaf description { |
| type string { | | type string { |
| length "1..64" { | | length "1..64" { |
| description | | description |
| "EVPN Instance description string"; | | "EVPN Instance description string"; |
| } | | } |
| } | | } |
| description | | description |
| "Description for this EVPN Instance"; | | "Description for this EVPN Instance"; |
| } | | } |
| container ecmp-disable-deprecated { | | container ecmp-disable-deprecated { |
| presence "Indicates a ecmp-disable-deprecated node is configured."; | | presence "Indicates a ecmp-disable-deprecated node is configured."; |
| description | | description |
| "Deprecated: migrate to <evpn evi N preferrred-nexthop modulo>"; | | "Deprecated: migrate to <evpn evi N preferrred-nexthop modulo>"; |
| } | | } |
| container preferred-nexthop { | | container preferred-nexthop { |
| description | | description |
| "Elect unique active path from ECMP candidate list"; | | "Elect unique active path from ECMP candidate list"; |
| container lowest-ip { | | container lowest-ip { |
| must "not(../highest-ip or ../modulo)"; | | must "not(../highest-ip or ../modulo)"; |
| presence "Indicates a lowest-ip node is configured."; | | presence "Indicates a lowest-ip node is configured."; |
| description | | description |
| "Lowest nexthop IP is active"; | | "Lowest nexthop IP is active"; |
| } | | } |
| container highest-ip { | | container highest-ip { |
| must "not(../lowest-ip or ../modulo)"; | | must "not(../lowest-ip or ../modulo)"; |
| presence "Indicates a highest-ip node is configured."; | | presence "Indicates a highest-ip node is configured."; |
| description | | description |
| "Highest nexthop IP is active"; | | "Highest nexthop IP is active"; |
| } | | } |
| container modulo { | | container modulo { |
| must "not(../lowest-ip or ../highest-ip)"; | | must "not(../lowest-ip or ../highest-ip)"; |
| presence "Indicates a modulo node is configured."; | | presence "Indicates a modulo node is configured."; |
| description | | description |
| "EVI modulo of nexthops cardinality is active"; | | "EVI modulo of nexthops cardinality is active"; |
| } | | } |
| } | | } |
| container advertise-mac { | | container advertise-mac { |
| presence "Indicates a advertise-mac node is configured."; | | presence "Indicates a advertise-mac node is configured."; |
| description | | description |
| "Configure EVPN Instance MAC advertisement"; | | "Configure EVPN Instance MAC advertisement"; |
| container bvi-mac { | | container bvi-mac { |
| presence "Indicates a bvi-mac node is configured."; | | presence "Indicates a bvi-mac node is configured."; |
| description | | description |
| "Advertise local MAC and BVI MAC routes"; | | "Advertise local MAC and BVI MAC routes"; |
| } | | } |
| } | | } |
| container unknown-unicast-suppression { | | container unknown-unicast-suppression { |
| presence "Indicates a unknown-unicast-suppression node is configured."; | | presence "Indicates a unknown-unicast-suppression node is configured."; |
| description | | description |
| "Enabling unknown unicast suppression"; | | "Enabling unknown unicast suppression"; |
| } | | } |
| container ignore-mtu-mismatch { | | container ignore-mtu-mismatch { |
| presence "Indicates a ignore-mtu-mismatch node is configured."; | | presence "Indicates a ignore-mtu-mismatch node is configured."; |
| description | | description |
| "Ignore mismatch of local and remote MTUs"; | | "Ignore mismatch of local and remote MTUs"; |
| container disable-deprecated { | | container disable-deprecated { |
| presence "Indicates a disable-deprecated node is configured."; | | presence "Indicates a disable-deprecated node is configured."; |
| description | | description |
| "Disables ingoring mismatch of local and remote MTUs (deprecated)"; | | "Disables ingoring mismatch of local and remote MTUs (deprecated)"; |
| } | | } |
| } | | } |
| container enforce-mtu-match { | | container enforce-mtu-match { |
| presence "Indicates a enforce-mtu-match node is configured."; | | presence "Indicates a enforce-mtu-match node is configured."; |
| description | | description |
| "Enforce matching of local and remote MTUs"; | | "Enforce matching of local and remote MTUs"; |
| } | | } |
| container transmit-mtu-zero { | | container transmit-mtu-zero { |
| presence "Indicates a transmit-mtu-zero node is configured."; | | presence "Indicates a transmit-mtu-zero node is configured."; |
| description | | description |
| "Transmit MTU zero to remote instead of actual local MTU"; | | "Transmit MTU zero to remote instead of actual local MTU"; |
| container disable-deprecated { | | container disable-deprecated { |
| presence "Indicates a disable-deprecated node is configured."; | | presence "Indicates a disable-deprecated node is configured."; |
| description | | description |
| "Disables transmitting MTU zero to remote instead of actual local MTU (deprecated)"; | | "Disables transmitting MTU zero to remote instead of actual local MTU (deprecated)"; |
| } | | } |
| } | | } |
| container transmit-l2-mtu { | | container transmit-l2-mtu { |
| presence "Indicates a transmit-l2-mtu node is configured."; | | presence "Indicates a transmit-l2-mtu node is configured."; |
| description | | description |
| "Transmit L2 MTU of attachment circuit"; | | "Transmit L2 MTU of attachment circuit"; |
| } | | } |
| container re-origination-disable { | | container re-origination-disable { |
| presence "Indicates a re-origination-disable node is configured."; | | presence "Indicates a re-origination-disable node is configured."; |
| description | | description |
| "Disable route re-origination"; | | "Disable route re-origination"; |
| } | | } |
| n | container locators { | n | container multicast { |
| description | | presence "Indicates a multicast node is configured."; |
| "EVI locator to use for EVPN SID allocation"; | | |
| list locator { | | |
| key "locator-name"; | | |
| description | | description |
| "EVI locator to use for EVPN SID allocation"; | | "Configure EVPN Instance Multicast"; |
| leaf locator-name { | | container source-connected { |
| type xr:Cisco-ios-xr-string { | | presence "Indicates a source-connected node is configured."; |
| length "1..58" { | | |
| description | | |
| "Specify locator name"; | | |
| } | | |
| pattern "[a-z0-9A-Z][a-z0-9A-Z_.:]*"; | | |
| } | | |
| description | | description |
| "EVI locator to use for EVPN SID allocation"; | | "Multicast traffic source connected"; |
| } | | } |
| | | } |
| | | container proxy { |
| | | presence "Indicates a proxy node is configured."; |
| | | description |
| | | "Configure EVPN Instance Proxy"; |
| container usid { | | container igmp-snooping { |
| | | presence "Indicates a igmp-snooping node is configured."; |
| description | | description |
| "Configure the uSID wide function knob"; | | "Proxy mode for IGMP-Snooping (selective multicast)"; |
| container allocation { | | |
| description | | |
| "Set the allocation types associated with uSID"; | | |
| container wide-local-id-block { | | |
| presence "Indicates a wide-local-id-block node is configured."; | | |
| description | | |
| "Enable uSID wide function knob for the locator"; | | |
| } | | |
| } | | |
| } | | |
| } | | } |
| } | | } |
| container bvi-coupled-mode { | | container bvi-coupled-mode { |
| presence "Indicates a bvi-coupled-mode node is configured."; | | presence "Indicates a bvi-coupled-mode node is configured."; |
| description | | description |
| "Couples BVI state to the core EVPN Instance state"; | | "Couples BVI state to the core EVPN Instance state"; |
| } | | } |
| } | | } |
| } | | } |
| list vni { | | list vni { |
| key "vni-id"; | | key "vni-id"; |
| description | | description |
| "Configure EVPN VNI"; | | "Configure EVPN VNI"; |
| leaf vni-id { | | leaf vni-id { |
| type uint32 { | | type uint32 { |
| range "1..16777215" { | | range "1..16777215" { |
| description | | description |
| "EVPN VNI value"; | | "EVPN VNI value"; |
| } | | } |
| } | | } |
| description | | description |
| "Configure EVPN VNI"; | | "Configure EVPN VNI"; |
| } | | } |
| container bgp { | | container bgp { |
| presence "Indicates a bgp node is configured."; | | presence "Indicates a bgp node is configured."; |
| description | | description |
| "Configure BGP"; | | "Configure BGP"; |
| container rd { | | container rd { |
| description | | description |
| "Set the Route Distinguisher"; | | "Set the Route Distinguisher"; |
| leaf two-byte-as-number { | | leaf two-byte-as-number { |
| type uint32 { | | type uint32 { |
| range "1..65535" { | | range "1..65535" { |
| description | | description |
| "Two Byte AS Number"; | | "Two Byte AS Number"; |
| } | | } |
| } | | } |
| n | must "not(../four-byte-as-number or ../ipv4-address) and ../two-byte-as-assigned-number"; | n | must "not(../four-byte-as-number or ../ipv4-address)"; |
| description | | description |
| "Two Byte AS Number"; | | "Two Byte AS Number"; |
| } | | } |
| leaf two-byte-as-assigned-number { | | leaf two-byte-as-assigned-number { |
| type uint32 { | | type uint32 { |
| range "0..4294967295" { | | range "0..4294967295" { |
| description | | description |
| "AS:nn (hex or decimal format)"; | | "AS:nn (hex or decimal format)"; |
| } | | } |
| } | | } |
| must "../two-byte-as-number"; | | must "../two-byte-as-number"; |
| description | | description |
| "AS:nn (hex or decimal format)"; | | "AS:nn (hex or decimal format)"; |
| } | | } |
| leaf four-byte-as-number { | | leaf four-byte-as-number { |
| type uint32 { | | type uint32 { |
| range "65536..4294967295" { | | range "65536..4294967295" { |
| description | | description |
| "Four Byte AS number"; | | "Four Byte AS number"; |
| } | | } |
| } | | } |
| n | must "not(../two-byte-as-number or ../ipv4-address) and ../four-byte-as-assigned-number"; | n | must "not(../two-byte-as-number or ../ipv4-address)"; |
| description | | description |
| "Four Byte AS number"; | | "Four Byte AS number"; |
| } | | } |
| leaf four-byte-as-assigned-number { | | leaf four-byte-as-assigned-number { |
| type uint32 { | | type uint32 { |
| range "0..65535" { | | range "0..65535" { |
| description | | description |
| "AS:nn (hex or decimal format)"; | | "AS:nn (hex or decimal format)"; |
| } | | } |
| } | | } |
| must "../four-byte-as-number"; | | must "../four-byte-as-number"; |
| description | | description |
| "AS:nn (hex or decimal format)"; | | "AS:nn (hex or decimal format)"; |
| } | | } |
| leaf ipv4-address { | | leaf ipv4-address { |
| type inet:ipv4-address-no-zone; | | type inet:ipv4-address-no-zone; |
| n | must "not(../two-byte-as-number or ../four-byte-as-number) and ../ipv4-address-assigned-number"; | n | must "not(../two-byte-as-number or ../four-byte-as-number)"; |
| description | | description |
| "IP address"; | | "IP address"; |
| } | | } |
| leaf ipv4-address-assigned-number { | | leaf ipv4-address-assigned-number { |
| type uint32 { | | type uint32 { |
| range "0..65535" { | | range "0..65535" { |
| description | | description |
| "IP-address:nn (hex or decimal format)"; | | "IP-address:nn (hex or decimal format)"; |
| } | | } |
| } | | } |
| must "../ipv4-address"; | | must "../ipv4-address"; |
| description | | description |
| "IP-address:nn (hex or decimal format)"; | | "IP-address:nn (hex or decimal format)"; |
| } | | } |
| } | | } |
| container route-target { | | container route-target { |
| description | | description |
| "Set the Route Target"; | | "Set the Route Target"; |
| container two-byte-as-rts { | | container two-byte-as-rts { |
| description | | description |
| "Two Byte AS Number Route Target"; | | "Two Byte AS Number Route Target"; |
| list two-byte-as-rt { | | list two-byte-as-rt { |
| key "two-byte-as-number assigned-number"; | | key "two-byte-as-number assigned-number"; |
| description | | description |
| "Two Byte AS Number Route Target"; | | "Two Byte AS Number Route Target"; |
| leaf two-byte-as-number { | | leaf two-byte-as-number { |
| type uint32 { | | type uint32 { |
| range "1..65535"; | | range "1..65535"; |
| } | | } |
| description | | description |
| "Two Byte AS Number"; | | "Two Byte AS Number"; |
| } | | } |
| leaf assigned-number { | | leaf assigned-number { |
| type uint32 { | | type uint32 { |
| range "0..4294967295" { | | range "0..4294967295" { |
| description | | description |
| "AS:nn (hex or decimal format)"; | | "AS:nn (hex or decimal format)"; |
| } | | } |
| } | | } |
| description | | description |
| "AS:nn (hex or decimal format)"; | | "AS:nn (hex or decimal format)"; |
| } | | } |
| } | | } |
| } | | } |
| container four-byte-as-rts { | | container four-byte-as-rts { |
| description | | description |
| "Four Byte AS number Route Target"; | | "Four Byte AS number Route Target"; |
| list four-byte-as-rt { | | list four-byte-as-rt { |
| key "four-byte-as-number assigned-number"; | | key "four-byte-as-number assigned-number"; |
| description | | description |
| "Four Byte AS number Route Target"; | | "Four Byte AS number Route Target"; |
| leaf four-byte-as-number { | | leaf four-byte-as-number { |
| type uint32 { | | type uint32 { |
| range "65536..4294967295"; | | range "65536..4294967295"; |
| } | | } |
| description | | description |
| "Four Byte AS number"; | | "Four Byte AS number"; |
| } | | } |
| leaf assigned-number { | | leaf assigned-number { |
| type uint32 { | | type uint32 { |
| range "0..65535" { | | range "0..65535" { |
| description | | description |
| "AS:nn (hex or decimal format)"; | | "AS:nn (hex or decimal format)"; |
| } | | } |
| } | | } |
| description | | description |
| "AS:nn (hex or decimal format)"; | | "AS:nn (hex or decimal format)"; |
| } | | } |
| } | | } |
| } | | } |
| container ipv4-address-rts { | | container ipv4-address-rts { |
| description | | description |
| "IP address Route Target"; | | "IP address Route Target"; |
| list ipv4-address-rt { | | list ipv4-address-rt { |
| key "ipv4-address assigned-number"; | | key "ipv4-address assigned-number"; |
| description | | description |
| "IP address"; | | "IP address"; |
| leaf ipv4-address { | | leaf ipv4-address { |
| type inet:ipv4-address-no-zone; | | type inet:ipv4-address-no-zone; |
| description | | description |
| "IP address"; | | "IP address"; |
| } | | } |
| leaf assigned-number { | | leaf assigned-number { |
| type uint32 { | | type uint32 { |
| range "0..65535" { | | range "0..65535" { |
| description | | description |
| "IP-address:nn (hex or decimal format)"; | | "IP-address:nn (hex or decimal format)"; |
| } | | } |
| } | | } |
| description | | description |
| "IP-address:nn (hex or decimal format)"; | | "IP-address:nn (hex or decimal format)"; |
| } | | } |
| } | | } |
| } | | } |
| container none { | | container none { |
| presence "Indicates a none node is configured."; | | presence "Indicates a none node is configured."; |
| description | | description |
| "Withhold BGP RTs"; | | "Withhold BGP RTs"; |
| } | | } |
| container import { | | container import { |
| description | | description |
| "Import Route Target"; | | "Import Route Target"; |
| container two-byte-as-rts { | | container two-byte-as-rts { |
| description | | description |
| "Two Byte AS Number Route Target"; | | "Two Byte AS Number Route Target"; |
| list two-byte-as-rt { | | list two-byte-as-rt { |
| key "two-byte-as-number assigned-number"; | | key "two-byte-as-number assigned-number"; |
| description | | description |
| "Two Byte AS Number Route Target"; | | "Two Byte AS Number Route Target"; |
| leaf two-byte-as-number { | | leaf two-byte-as-number { |
| type uint32 { | | type uint32 { |
| range "1..65535"; | | range "1..65535"; |
| } | | } |
| description | | description |
| "Two Byte AS Number"; | | "Two Byte AS Number"; |
| } | | } |
| leaf assigned-number { | | leaf assigned-number { |
| type uint32 { | | type uint32 { |
| range "0..4294967295" { | | range "0..4294967295" { |
| description | | description |
| "AS:nn (hex or decimal format)"; | | "AS:nn (hex or decimal format)"; |
| } | | } |
| } | | } |
| description | | description |
| "AS:nn (hex or decimal format)"; | | "AS:nn (hex or decimal format)"; |
| } | | } |
| } | | } |
| } | | } |
| container four-byte-as-rts { | | container four-byte-as-rts { |
| description | | description |
| "Four Byte AS number Route Target"; | | "Four Byte AS number Route Target"; |
| list four-byte-as-rt { | | list four-byte-as-rt { |
| key "four-byte-as-number assigned-number"; | | key "four-byte-as-number assigned-number"; |
| description | | description |
| "Four Byte AS number Route Target"; | | "Four Byte AS number Route Target"; |
| leaf four-byte-as-number { | | leaf four-byte-as-number { |
| type uint32 { | | type uint32 { |
| range "65536..4294967295"; | | range "65536..4294967295"; |
| } | | } |
| description | | description |
| "Four Byte AS number"; | | "Four Byte AS number"; |
| } | | } |
| leaf assigned-number { | | leaf assigned-number { |
| type uint32 { | | type uint32 { |
| range "0..65535" { | | range "0..65535" { |
| description | | description |
| "AS:nn (hex or decimal format)"; | | "AS:nn (hex or decimal format)"; |
| } | | } |
| } | | } |
| description | | description |
| "AS:nn (hex or decimal format)"; | | "AS:nn (hex or decimal format)"; |
| } | | } |
| } | | } |
| } | | } |
| container ipv4-address-rts { | | container ipv4-address-rts { |
| description | | description |
| "IP address Route Target"; | | "IP address Route Target"; |
| list ipv4-address-rt { | | list ipv4-address-rt { |
| key "ipv4-address assigned-number"; | | key "ipv4-address assigned-number"; |
| description | | description |
| "IP address"; | | "IP address"; |
| leaf ipv4-address { | | leaf ipv4-address { |
| type inet:ipv4-address-no-zone; | | type inet:ipv4-address-no-zone; |
| description | | description |
| "IP address"; | | "IP address"; |
| } | | } |
| leaf assigned-number { | | leaf assigned-number { |
| type uint32 { | | type uint32 { |
| range "0..65535" { | | range "0..65535" { |
| description | | description |
| "IP-address:nn (hex or decimal format)"; | | "IP-address:nn (hex or decimal format)"; |
| } | | } |
| } | | } |
| description | | description |
| "IP-address:nn (hex or decimal format)"; | | "IP-address:nn (hex or decimal format)"; |
| } | | } |
| } | | } |
| } | | } |
| container none { | | container none { |
| presence "Indicates a none node is configured."; | | presence "Indicates a none node is configured."; |
| description | | description |
| "Withhold BGP RTs"; | | "Withhold BGP RTs"; |
| } | | } |
| } | | } |
| container export { | | container export { |
| description | | description |
| "Export Route Target"; | | "Export Route Target"; |
| container two-byte-as-rts { | | container two-byte-as-rts { |
| description | | description |
| "Two Byte AS Number Route Target"; | | "Two Byte AS Number Route Target"; |
| list two-byte-as-rt { | | list two-byte-as-rt { |
| key "two-byte-as-number assigned-number"; | | key "two-byte-as-number assigned-number"; |
| description | | description |
| "Two Byte AS Number Route Target"; | | "Two Byte AS Number Route Target"; |
| leaf two-byte-as-number { | | leaf two-byte-as-number { |
| type uint32 { | | type uint32 { |
| range "1..65535"; | | range "1..65535"; |
| } | | } |
| description | | description |
| "Two Byte AS Number"; | | "Two Byte AS Number"; |
| } | | } |
| leaf assigned-number { | | leaf assigned-number { |
| type uint32 { | | type uint32 { |
| range "0..4294967295" { | | range "0..4294967295" { |
| description | | description |
| "AS:nn (hex or decimal format)"; | | "AS:nn (hex or decimal format)"; |
| } | | } |
| } | | } |
| description | | description |
| "AS:nn (hex or decimal format)"; | | "AS:nn (hex or decimal format)"; |
| } | | } |
| } | | } |
| } | | } |
| container four-byte-as-rts { | | container four-byte-as-rts { |
| description | | description |
| "Four Byte AS number Route Target"; | | "Four Byte AS number Route Target"; |
| list four-byte-as-rt { | | list four-byte-as-rt { |
| key "four-byte-as-number assigned-number"; | | key "four-byte-as-number assigned-number"; |
| description | | description |
| "Four Byte AS number Route Target"; | | "Four Byte AS number Route Target"; |
| leaf four-byte-as-number { | | leaf four-byte-as-number { |
| type uint32 { | | type uint32 { |
| range "65536..4294967295"; | | range "65536..4294967295"; |
| } | | } |
| description | | description |
| "Four Byte AS number"; | | "Four Byte AS number"; |
| } | | } |
| leaf assigned-number { | | leaf assigned-number { |
| type uint32 { | | type uint32 { |
| range "0..65535" { | | range "0..65535" { |
| description | | description |
| "AS:nn (hex or decimal format)"; | | "AS:nn (hex or decimal format)"; |
| } | | } |
| } | | } |
| description | | description |
| "AS:nn (hex or decimal format)"; | | "AS:nn (hex or decimal format)"; |
| } | | } |
| } | | } |
| } | | } |
| container ipv4-address-rts { | | container ipv4-address-rts { |
| description | | description |
| "IP address Route Target"; | | "IP address Route Target"; |
| list ipv4-address-rt { | | list ipv4-address-rt { |
| key "ipv4-address assigned-number"; | | key "ipv4-address assigned-number"; |
| description | | description |
| "IP address"; | | "IP address"; |
| leaf ipv4-address { | | leaf ipv4-address { |
| type inet:ipv4-address-no-zone; | | type inet:ipv4-address-no-zone; |
| description | | description |
| "IP address"; | | "IP address"; |
| } | | } |
| leaf assigned-number { | | leaf assigned-number { |
| type uint32 { | | type uint32 { |
| range "0..65535" { | | range "0..65535" { |
| description | | description |
| "IP-address:nn (hex or decimal format)"; | | "IP-address:nn (hex or decimal format)"; |
| } | | } |
| } | | } |
| description | | description |
| "IP-address:nn (hex or decimal format)"; | | "IP-address:nn (hex or decimal format)"; |
| } | | } |
| } | | } |
| } | | } |
| container none { | | container none { |
| presence "Indicates a none node is configured."; | | presence "Indicates a none node is configured."; |
| description | | description |
| "Withhold BGP RTs"; | | "Withhold BGP RTs"; |
| } | | } |
| } | | } |
| } | | } |
| leaf table-policy { | | leaf table-policy { |
| type xr:Route-policy-name; | | type xr:Route-policy-name; |
| description | | description |
| "Configure policy for installation of forwarding data to L2FIB"; | | "Configure policy for installation of forwarding data to L2FIB"; |
| } | | } |
| container implicit-import-disable { | | container implicit-import-disable { |
| presence "Indicates a implicit-import-disable node is configured."; | | presence "Indicates a implicit-import-disable node is configured."; |
| description | | description |
| "Disable BGP implicit import"; | | "Disable BGP implicit import"; |
| } | | } |
| container route-policy { | | container route-policy { |
| description | | description |
| "Apply route policy"; | | "Apply route policy"; |
| leaf export { | | leaf export { |
| type xr:Route-policy-name; | | type xr:Route-policy-name; |
| description | | description |
| "Export route policy"; | | "Export route policy"; |
| } | | } |
| leaf import { | | leaf import { |
| type xr:Route-policy-name; | | type xr:Route-policy-name; |
| description | | description |
| "Import route policy"; | | "Import route policy"; |
| } | | } |
| } | | } |
| } | | } |
| leaf description { | | leaf description { |
| type string { | | type string { |
| length "1..64" { | | length "1..64" { |
| description | | description |
| "EVPN Instance description string"; | | "EVPN Instance description string"; |
| } | | } |
| } | | } |
| description | | description |
| "Description for this EVPN Instance"; | | "Description for this EVPN Instance"; |
| } | | } |
| container ecmp-disable-deprecated { | | container ecmp-disable-deprecated { |
| presence "Indicates a ecmp-disable-deprecated node is configured."; | | presence "Indicates a ecmp-disable-deprecated node is configured."; |
| description | | description |
| "Deprecated: migrate to <evpn evi N preferrred-nexthop modulo>"; | | "Deprecated: migrate to <evpn evi N preferrred-nexthop modulo>"; |
| } | | } |
| container preferred-nexthop { | | container preferred-nexthop { |
| description | | description |
| "Elect unique active path from ECMP candidate list"; | | "Elect unique active path from ECMP candidate list"; |
| container lowest-ip { | | container lowest-ip { |
| must "not(../highest-ip or ../modulo)"; | | must "not(../highest-ip or ../modulo)"; |
| presence "Indicates a lowest-ip node is configured."; | | presence "Indicates a lowest-ip node is configured."; |
| description | | description |
| "Lowest nexthop IP is active"; | | "Lowest nexthop IP is active"; |
| } | | } |
| container highest-ip { | | container highest-ip { |
| must "not(../lowest-ip or ../modulo)"; | | must "not(../lowest-ip or ../modulo)"; |
| presence "Indicates a highest-ip node is configured."; | | presence "Indicates a highest-ip node is configured."; |
| description | | description |
| "Highest nexthop IP is active"; | | "Highest nexthop IP is active"; |
| } | | } |
| container modulo { | | container modulo { |
| must "not(../lowest-ip or ../highest-ip)"; | | must "not(../lowest-ip or ../highest-ip)"; |
| presence "Indicates a modulo node is configured."; | | presence "Indicates a modulo node is configured."; |
| description | | description |
| "EVI modulo of nexthops cardinality is active"; | | "EVI modulo of nexthops cardinality is active"; |
| } | | } |
| } | | } |
| container advertise-mac { | | container advertise-mac { |
| presence "Indicates a advertise-mac node is configured."; | | presence "Indicates a advertise-mac node is configured."; |
| description | | description |
| "Configure EVPN Instance MAC advertisement"; | | "Configure EVPN Instance MAC advertisement"; |
| container bvi-mac { | | container bvi-mac { |
| presence "Indicates a bvi-mac node is configured."; | | presence "Indicates a bvi-mac node is configured."; |
| description | | description |
| "Advertise local MAC and BVI MAC routes"; | | "Advertise local MAC and BVI MAC routes"; |
| } | | } |
| } | | } |
| container unknown-unicast-suppression { | | container unknown-unicast-suppression { |
| presence "Indicates a unknown-unicast-suppression node is configured."; | | presence "Indicates a unknown-unicast-suppression node is configured."; |
| description | | description |
| "Enabling unknown unicast suppression"; | | "Enabling unknown unicast suppression"; |
| } | | } |
| container ignore-mtu-mismatch { | | container ignore-mtu-mismatch { |
| presence "Indicates a ignore-mtu-mismatch node is configured."; | | presence "Indicates a ignore-mtu-mismatch node is configured."; |
| description | | description |
| "Ignore mismatch of local and remote MTUs"; | | "Ignore mismatch of local and remote MTUs"; |
| container disable-deprecated { | | container disable-deprecated { |
| presence "Indicates a disable-deprecated node is configured."; | | presence "Indicates a disable-deprecated node is configured."; |
| description | | description |
| "Disables ingoring mismatch of local and remote MTUs (deprecated)"; | | "Disables ingoring mismatch of local and remote MTUs (deprecated)"; |
| } | | } |
| } | | } |
| container enforce-mtu-match { | | container enforce-mtu-match { |
| presence "Indicates a enforce-mtu-match node is configured."; | | presence "Indicates a enforce-mtu-match node is configured."; |
| description | | description |
| "Enforce matching of local and remote MTUs"; | | "Enforce matching of local and remote MTUs"; |
| } | | } |
| container transmit-mtu-zero { | | container transmit-mtu-zero { |
| presence "Indicates a transmit-mtu-zero node is configured."; | | presence "Indicates a transmit-mtu-zero node is configured."; |
| description | | description |
| "Transmit MTU zero to remote instead of actual local MTU"; | | "Transmit MTU zero to remote instead of actual local MTU"; |
| container disable-deprecated { | | container disable-deprecated { |
| presence "Indicates a disable-deprecated node is configured."; | | presence "Indicates a disable-deprecated node is configured."; |
| description | | description |
| "Disables transmitting MTU zero to remote instead of actual local MTU (deprecated)"; | | "Disables transmitting MTU zero to remote instead of actual local MTU (deprecated)"; |
| } | | } |
| } | | } |
| container transmit-l2-mtu { | | container transmit-l2-mtu { |
| presence "Indicates a transmit-l2-mtu node is configured."; | | presence "Indicates a transmit-l2-mtu node is configured."; |
| description | | description |
| "Transmit L2 MTU of attachment circuit"; | | "Transmit L2 MTU of attachment circuit"; |
| } | | } |
| container re-origination-disable { | | container re-origination-disable { |
| presence "Indicates a re-origination-disable node is configured."; | | presence "Indicates a re-origination-disable node is configured."; |
| description | | description |
| "Disable route re-origination"; | | "Disable route re-origination"; |
| } | | } |
| n | container locators { | n | container multicast { |
| | | presence "Indicates a multicast node is configured."; |
| description | | description |
| n | "EVI locator to use for EVPN SID allocation"; | n | "Configure EVPN Instance Multicast"; |
| list locator { | | container source-connected { |
| key "locator-name"; | | presence "Indicates a source-connected node is configured."; |
| description | | |
| "EVI locator to use for EVPN SID allocation"; | | |
| leaf locator-name { | | |
| type xr:Cisco-ios-xr-string { | | |
| length "1..58" { | | |
| description | | |
| "Specify locator name"; | | |
| } | | |
| pattern "[a-z0-9A-Z][a-z0-9A-Z_.:]*"; | | |
| } | | |
| description | | description |
| "EVI locator to use for EVPN SID allocation"; | | "Multicast traffic source connected"; |
| } | | } |
| | | } |
| | | container proxy { |
| | | presence "Indicates a proxy node is configured."; |
| | | description |
| | | "Configure EVPN Instance Proxy"; |
| container usid { | | container igmp-snooping { |
| | | presence "Indicates a igmp-snooping node is configured."; |
| description | | description |
| "Configure the uSID wide function knob"; | | "Proxy mode for IGMP-Snooping (selective multicast)"; |
| container allocation { | | |
| description | | |
| "Set the allocation types associated with uSID"; | | |
| container wide-local-id-block { | | |
| presence "Indicates a wide-local-id-block node is configured."; | | |
| description | | |
| "Enable uSID wide function knob for the locator"; | | |
| } | | |
| } | | |
| } | | |
| } | | } |
| } | | } |
| container bvi-coupled-mode { | | container bvi-coupled-mode { |
| presence "Indicates a bvi-coupled-mode node is configured."; | | presence "Indicates a bvi-coupled-mode node is configured."; |
| description | | description |
| "Couples BVI state to the core EVPN Instance state"; | | "Couples BVI state to the core EVPN Instance state"; |
| } | | } |
| } | | } |
| } | | } |
| container segment-routing { | | container segment-routing { |
| if-feature "l2vpn_platform_srv6_supported"; | | if-feature "l2vpn_platform_srv6_supported"; |
| description | | description |
| "Segment routing configuration for EVPN"; | | "Segment routing configuration for EVPN"; |
| container srv6 { | | container srv6 { |
| presence "Indicates a srv6 node is configured."; | | presence "Indicates a srv6 node is configured."; |
| description | | description |
| "SRv6 configuration for EVPN"; | | "SRv6 configuration for EVPN"; |
| n | container locators { | n | leaf locator { |
| | | type xr:Cisco-ios-xr-string { |
| | | length "1..58" { |
| | | description |
| | | "Specify locator name"; |
| | | } |
| | | pattern "[a-z0-9A-Z][a-z0-9A-Z_.:]*"; |
| | | } |
| description | | description |
| "Default locator to use for EVPN SID allocation"; | | "Default locator to use for EVPN SID allocation"; |
| n | list locator { | n | |
| key "locator-name"; | | |
| description | | |
| "Default locator to use for EVPN SID allocation"; | | |
| leaf locator-name { | | |
| type xr:Cisco-ios-xr-string { | | |
| length "1..58" { | | |
| description | | |
| "Specify locator name"; | | |
| } | | |
| pattern "[a-z0-9A-Z][a-z0-9A-Z_.:]*"; | | |
| } | | |
| description | | |
| "Default locator to use for EVPN SID allocation"; | | |
| } | | |
| container usid { | | |
| description | | |
| "Configure the uSID wide function knob"; | | |
| container allocation { | | |
| description | | |
| "Set the allocation types associated with uSID"; | | |
| container wide-local-id-block { | | |
| presence "Indicates a wide-local-id-block node is configured."; | | |
| description | | |
| "Enable uSID wide function knob for the locator"; | | |
| } | | |
| } | | |
| } | | |
| } | | |
| } | | |
| container usid { | | |
| description | | |
| "Configure the uSID wide function knob"; | | |
| container allocation { | | |
| description | | |
| "Set the allocation types associated with uSID"; | | |
| container wide-local-id-block { | | |
| presence "Indicates a wide-local-id-block node is configured."; | | |
| description | | |
| "Enable uSID wide function global knob"; | | |
| } | | |
| } | | |
| } | | } |
| } | | } |
| } | | } |
| container ignore-mtu-mismatch { | | container ignore-mtu-mismatch { |
| presence "Indicates a ignore-mtu-mismatch node is configured."; | | presence "Indicates a ignore-mtu-mismatch node is configured."; |
| description | | description |
| "Ignore mismatch of local and remote MTUs"; | | "Ignore mismatch of local and remote MTUs"; |
| } | | } |
| container enforce-mtu-match { | | container enforce-mtu-match { |
| presence "Indicates a enforce-mtu-match node is configured."; | | presence "Indicates a enforce-mtu-match node is configured."; |
| description | | description |
| "Enforce matching of local and remote MTUs"; | | "Enforce matching of local and remote MTUs"; |
| } | | } |
| container transmit-mtu-zero { | | container transmit-mtu-zero { |
| presence "Indicates a transmit-mtu-zero node is configured."; | | presence "Indicates a transmit-mtu-zero node is configured."; |
| description | | description |
| "Transmit MTU zero to remote instead of actual local MTU"; | | "Transmit MTU zero to remote instead of actual local MTU"; |
| } | | } |
| container transmit-l2-mtu { | | container transmit-l2-mtu { |
| presence "Indicates a transmit-l2-mtu node is configured."; | | presence "Indicates a transmit-l2-mtu node is configured."; |
| description | | description |
| "Transmit L2 MTU of attachment circuit"; | | "Transmit L2 MTU of attachment circuit"; |
| } | | } |
| } | | } |
| container generic-interface-lists { | | container generic-interface-lists { |
| description | | description |
| "Interface list"; | | "Interface list"; |
| list generic-interface-list { | | list generic-interface-list { |
| key "generic-interface-list-name"; | | key "generic-interface-list-name"; |
| description | | description |
| "Interface list"; | | "Interface list"; |
| leaf generic-interface-list-name { | | leaf generic-interface-list-name { |
| type xr:Cisco-ios-xr-string { | | type xr:Cisco-ios-xr-string { |
| length "1..32" { | | length "1..32" { |
| description | | description |
| "Interface-list name"; | | "Interface-list name"; |
| } | | } |
| } | | } |
| description | | description |
| "Interface list"; | | "Interface list"; |
| } | | } |
| container interfaces { | | container interfaces { |
| description | | description |
| "Specify an interface"; | | "Specify an interface"; |
| list interface { | | list interface { |
| if-feature "l2vpn_iflist_intf_supported"; | | if-feature "l2vpn_iflist_intf_supported"; |
| key "interface-name"; | | key "interface-name"; |
| description | | description |
| "Specify interface name"; | | "Specify interface name"; |
| leaf interface-name { | | leaf interface-name { |
| type xr:Interface-name; | | type xr:Interface-name; |
| description | | description |
| "Specify interface name"; | | "Specify interface name"; |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| container l2vpn { | | container l2vpn { |
| presence "Indicates a l2vpn node is configured."; | | presence "Indicates a l2vpn node is configured."; |
| description | | description |
| "Configure l2vpn commands"; | | "Configure l2vpn commands"; |
| container bridge { | | container bridge { |
| description | | description |
| "Configure bridge commands"; | | "Configure bridge commands"; |
| container groups { | | container groups { |
| description | | description |
| "Specify the group the bridge belongs to"; | | "Specify the group the bridge belongs to"; |
| list group { | | list group { |
| key "group-name"; | | key "group-name"; |
| description | | description |
| "Specify the group the bridge belongs to"; | | "Specify the group the bridge belongs to"; |
| leaf group-name { | | leaf group-name { |
| type xr:Cisco-ios-xr-string { | | type xr:Cisco-ios-xr-string { |
| length "1..32" { | | length "1..32" { |
| description | | description |
| "Name of the bridge group"; | | "Name of the bridge group"; |
| } | | } |
| } | | } |
| description | | description |
| "Specify the group the bridge belongs to"; | | "Specify the group the bridge belongs to"; |
| } | | } |
| container bridge-domains { | | container bridge-domains { |
| description | | description |
| "Configure bridge domain"; | | "Configure bridge domain"; |
| list bridge-domain { | | list bridge-domain { |
| key "bridge-domain-name"; | | key "bridge-domain-name"; |
| description | | description |
| "Configure bridge domain"; | | "Configure bridge domain"; |
| leaf bridge-domain-name { | | leaf bridge-domain-name { |
| type xr:Cisco-ios-xr-string { | | type xr:Cisco-ios-xr-string { |
| length "1..27" { | | length "1..27" { |
| description | | description |
| "Name of the bridge domain"; | | "Name of the bridge domain"; |
| } | | } |
| } | | } |
| description | | description |
| "Configure bridge domain"; | | "Configure bridge domain"; |
| } | | } |
| container evis { | | container evis { |
| description | | description |
| "Ethernet VPN identifier"; | | "Ethernet VPN identifier"; |
| list evi { | | list evi { |
| key "vpn-id"; | | key "vpn-id"; |
| description | | description |
| "Ethernet VPN identifier"; | | "Ethernet VPN identifier"; |
| leaf vpn-id { | | leaf vpn-id { |
| type uint32 { | | type uint32 { |
| range "1..65534" { | | range "1..65534" { |
| description | | description |
| "Ethernet VPN ID to set"; | | "Ethernet VPN ID to set"; |
| } | | } |
| } | | } |
| description | | description |
| "Ethernet VPN identifier"; | | "Ethernet VPN identifier"; |
| } | | } |
| } | | } |
| } | | } |
| n | container segment-routing-srv6-evis { | n | |
| description | | |
| "Ethernet VPN identifier for srv6"; | | |
| list evi { | | |
| key "vpn-id"; | | |
| description | | |
| "Ethernet VPN identifier for srv6"; | | |
| leaf vpn-id { | | |
| type uint32 { | | |
| range "1..65534" { | | |
| description | | |
| "Ethernet VPN ID to set"; | | |
| } | | |
| } | | |
| description | | |
| "Ethernet VPN identifier for srv6"; | | |
| } | | |
| } | | |
| } | | |
| container vnis { | | container vnis { |
| description | | description |
| "VxLAN VPN identifier"; | | "VxLAN VPN identifier"; |
| list vni { | | list vni { |
| key "vni-id"; | | key "vni-id"; |
| description | | description |
| "VxLAN VPN identifier"; | | "VxLAN VPN identifier"; |
| leaf vni-id { | | leaf vni-id { |
| type uint32 { | | type uint32 { |
| range "1..16777215" { | | range "1..16777215" { |
| description | | description |
| "VxLAN VPN ID to set"; | | "VxLAN VPN ID to set"; |
| } | | } |
| } | | } |
| description | | description |
| "VxLAN VPN identifier"; | | "VxLAN VPN identifier"; |
| } | | } |
| } | | } |
| } | | } |
| leaf mtu { | | leaf mtu { |
| type uint32 { | | type uint32 { |
| range "46..65535" { | | range "46..65535" { |
| description | | description |
| "Maximum transmission unit size (payload) in bytes"; | | "Maximum transmission unit size (payload) in bytes"; |
| } | | } |
| } | | } |
| description | | description |
| "Maximum transmission unit (payload) for this Bridge Domain"; | | "Maximum transmission unit (payload) for this Bridge Domain"; |
| } | | } |
| container coupled-mode { | | container coupled-mode { |
| if-feature "l2vpn_is_cli_supported"; | | if-feature "l2vpn_is_cli_supported"; |
| presence "Indicates a coupled-mode node is configured."; | | presence "Indicates a coupled-mode node is configured."; |
| description | | description |
| "Enable coupled mode for the Bridge Domain"; | | "Enable coupled mode for the Bridge Domain"; |
| } | | } |
| container transport-mode { | | container transport-mode { |
| description | | description |
| "Bridge domain transport mode"; | | "Bridge domain transport mode"; |
| container vlan { | | container vlan { |
| description | | description |
| "Vlan tagged mode"; | | "Vlan tagged mode"; |
| container passthrough { | | container passthrough { |
| presence "Indicates a passthrough node is configured."; | | presence "Indicates a passthrough node is configured."; |
| description | | description |
| "passthrough incoming tags"; | | "passthrough incoming tags"; |
| } | | } |
| } | | } |
| } | | } |
| container flooding { | | container flooding { |
| description | | description |
| "Traffic flooding"; | | "Traffic flooding"; |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Disable flooding"; | | "Disable flooding"; |
| n | | n | } |
| | | container unknown-unicast { |
| | | description |
| | | "Traffic flooding unknown unicast"; |
| | | container disable { |
| | | presence "Indicates a disable node is configured."; |
| | | description |
| | | "Disable Unknown Unicast flooding"; |
| | | } |
| } | | } |
| } | | } |
| container dynamic-arp-inspection { | | container dynamic-arp-inspection { |
| presence "Indicates a dynamic-arp-inspection node is configured."; | | presence "Indicates a dynamic-arp-inspection node is configured."; |
| description | | description |
| "Dynamic ARP Inspection"; | | "Dynamic ARP Inspection"; |
| container logging { | | container logging { |
| presence "Indicates a logging node is configured."; | | presence "Indicates a logging node is configured."; |
| description | | description |
| "Enable Logging"; | | "Enable Logging"; |
| } | | } |
| container address-validation { | | container address-validation { |
| presence "Indicates a address-validation node is configured."; | | presence "Indicates a address-validation node is configured."; |
| description | | description |
| "Address Validation Configurations"; | | "Address Validation Configurations"; |
| container src-mac { | | container src-mac { |
| presence "Indicates a src-mac node is configured."; | | presence "Indicates a src-mac node is configured."; |
| description | | description |
| "Match Source MAC Address"; | | "Match Source MAC Address"; |
| } | | } |
| container dst-mac { | | container dst-mac { |
| presence "Indicates a dst-mac node is configured."; | | presence "Indicates a dst-mac node is configured."; |
| description | | description |
| "Match Destination MAC Address"; | | "Match Destination MAC Address"; |
| } | | } |
| container ipv4 { | | container ipv4 { |
| presence "Indicates a ipv4 node is configured."; | | presence "Indicates a ipv4 node is configured."; |
| description | | description |
| "Match IPv4 Address"; | | "Match IPv4 Address"; |
| } | | } |
| } | | } |
| } | | } |
| container ip-source-guard { | | container ip-source-guard { |
| presence "Indicates a ip-source-guard node is configured."; | | presence "Indicates a ip-source-guard node is configured."; |
| description | | description |
| "IP Source Guard"; | | "IP Source Guard"; |
| container logging { | | container logging { |
| presence "Indicates a logging node is configured."; | | presence "Indicates a logging node is configured."; |
| description | | description |
| "Enable Logging"; | | "Enable Logging"; |
| } | | } |
| } | | } |
| container dhcp { | | container dhcp { |
| description | | description |
| "DHCP protocol"; | | "DHCP protocol"; |
| container ipv4 { | | container ipv4 { |
| description | | description |
| "IP Version 4"; | | "IP Version 4"; |
| container snoop { | | container snoop { |
| description | | description |
| "Set the snooping profile"; | | "Set the snooping profile"; |
| leaf profile { | | leaf profile { |
| type xr:Cisco-ios-xr-string { | | type xr:Cisco-ios-xr-string { |
| length "1..32" { | | length "1..32" { |
| description | | description |
| "DHCPv4 Snooping profile name"; | | "DHCPv4 Snooping profile name"; |
| } | | } |
| } | | } |
| description | | description |
| "Attach a DHCP profile"; | | "Attach a DHCP profile"; |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| container igmp { | | container igmp { |
| description | | description |
| "IGMP protocol"; | | "IGMP protocol"; |
| container snooping { | | container snooping { |
| description | | description |
| "Set the snooping profile"; | | "Set the snooping profile"; |
| leaf profile { | | leaf profile { |
| type xr:Cisco-ios-xr-string { | | type xr:Cisco-ios-xr-string { |
| length "1..32" { | | length "1..32" { |
| description | | description |
| "IGMP Snooping profile name"; | | "IGMP Snooping profile name"; |
| } | | } |
| } | | } |
| description | | description |
| "Attach an IGMP profile"; | | "Attach an IGMP profile"; |
| } | | } |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "disable IGMP snooping for the current bridge domain"; | | "disable IGMP snooping for the current bridge domain"; |
| } | | } |
| } | | } |
| } | | } |
| container mld { | | container mld { |
| description | | description |
| "MLD protocol"; | | "MLD protocol"; |
| container snooping { | | container snooping { |
| description | | description |
| "Set the snooping profile"; | | "Set the snooping profile"; |
| leaf profile { | | leaf profile { |
| type xr:Cisco-ios-xr-string { | | type xr:Cisco-ios-xr-string { |
| length "1..32" { | | length "1..32" { |
| description | | description |
| "MLD Snooping profile name"; | | "MLD Snooping profile name"; |
| } | | } |
| } | | } |
| description | | description |
| "Attach a MLD profile"; | | "Attach a MLD profile"; |
| } | | } |
| } | | } |
| } | | } |
| container storm-control { | | container storm-control { |
| description | | description |
| "Storm Control"; | | "Storm Control"; |
| container broadcast { | | container broadcast { |
| description | | description |
| "Broadcast Storm Control"; | | "Broadcast Storm Control"; |
| leaf pps { | | leaf pps { |
| type uint32 { | | type uint32 { |
| range "1..160000" { | | range "1..160000" { |
| description | | description |
| "storm control pps value"; | | "storm control pps value"; |
| } | | } |
| } | | } |
| description | | description |
| "Set the storm control pps"; | | "Set the storm control pps"; |
| } | | } |
| leaf kbps { | | leaf kbps { |
| type uint32 { | | type uint32 { |
| range "64..1280000" { | | range "64..1280000" { |
| description | | description |
| "storm control kbps value"; | | "storm control kbps value"; |
| } | | } |
| } | | } |
| description | | description |
| "Set the storm control kbps"; | | "Set the storm control kbps"; |
| } | | } |
| } | | } |
| container multicast { | | container multicast { |
| description | | description |
| "Multicast Storm Control"; | | "Multicast Storm Control"; |
| leaf pps { | | leaf pps { |
| type uint32 { | | type uint32 { |
| range "1..160000" { | | range "1..160000" { |
| description | | description |
| "storm control pps value"; | | "storm control pps value"; |
| } | | } |
| } | | } |
| description | | description |
| "Set the storm control pps"; | | "Set the storm control pps"; |
| } | | } |
| leaf kbps { | | leaf kbps { |
| type uint32 { | | type uint32 { |
| range "64..1280000" { | | range "64..1280000" { |
| description | | description |
| "storm control kbps value"; | | "storm control kbps value"; |
| } | | } |
| } | | } |
| description | | description |
| "Set the storm control kbps"; | | "Set the storm control kbps"; |
| } | | } |
| } | | } |
| container unknown-unicast { | | container unknown-unicast { |
| description | | description |
| "Unknown-unicast Storm Control"; | | "Unknown-unicast Storm Control"; |
| leaf pps { | | leaf pps { |
| type uint32 { | | type uint32 { |
| range "1..160000" { | | range "1..160000" { |
| description | | description |
| "storm control pps value"; | | "storm control pps value"; |
| } | | } |
| } | | } |
| description | | description |
| "Set the storm control pps"; | | "Set the storm control pps"; |
| } | | } |
| leaf kbps { | | leaf kbps { |
| type uint32 { | | type uint32 { |
| range "64..1280000" { | | range "64..1280000" { |
| description | | description |
| "storm control kbps value"; | | "storm control kbps value"; |
| } | | } |
| } | | } |
| description | | description |
| "Set the storm control kbps"; | | "Set the storm control kbps"; |
| } | | } |
| } | | } |
| } | | } |
| container multicast-source { | | container multicast-source { |
| description | | description |
| "Multicast Source Traffic"; | | "Multicast Source Traffic"; |
| container ipv4 { | | container ipv4 { |
| must "not(../ipv6 or ../ipv4-ipv6)"; | | must "not(../ipv6 or ../ipv4-ipv6)"; |
| presence "Indicates a ipv4 node is configured."; | | presence "Indicates a ipv4 node is configured."; |
| description | | description |
| "Traffic Type IPv4"; | | "Traffic Type IPv4"; |
| } | | } |
| container ipv6 { | | container ipv6 { |
| must "not(../ipv4 or ../ipv4-ipv6)"; | | must "not(../ipv4 or ../ipv4-ipv6)"; |
| presence "Indicates a ipv6 node is configured."; | | presence "Indicates a ipv6 node is configured."; |
| description | | description |
| "Traffic Type IPv6"; | | "Traffic Type IPv6"; |
| } | | } |
| container ipv4-ipv6 { | | container ipv4-ipv6 { |
| must "not(../ipv4 or ../ipv6)"; | | must "not(../ipv4 or ../ipv6)"; |
| presence "Indicates a ipv4-ipv6 node is configured."; | | presence "Indicates a ipv4-ipv6 node is configured."; |
| description | | description |
| "Traffic Type IPv4 and IPv6"; | | "Traffic Type IPv4 and IPv6"; |
| } | | } |
| } | | } |
| container interfaces { | | container interfaces { |
| description | | description |
| "Assign interface to bridge domain"; | | "Assign interface to bridge domain"; |
| list interface { | | list interface { |
| if-feature "l2vpn_iflist_intf_supported"; | | if-feature "l2vpn_iflist_intf_supported"; |
| key "interface-name"; | | key "interface-name"; |
| description | | description |
| "Specify interface name"; | | "Specify interface name"; |
| leaf interface-name { | | leaf interface-name { |
| type xr:Interface-name; | | type xr:Interface-name; |
| description | | description |
| "Specify interface name"; | | "Specify interface name"; |
| } | | } |
| container dhcp { | | container dhcp { |
| description | | description |
| "DHCP protocol"; | | "DHCP protocol"; |
| container ipv4 { | | container ipv4 { |
| description | | description |
| "IP Version 4"; | | "IP Version 4"; |
| container none { | | container none { |
| presence "Indicates a none node is configured."; | | presence "Indicates a none node is configured."; |
| description | | description |
| "Disable DHCP snooping"; | | "Disable DHCP snooping"; |
| } | | } |
| container snoop { | | container snoop { |
| presence "Indicates a snoop node is configured."; | | presence "Indicates a snoop node is configured."; |
| description | | description |
| "Set the snooping profile"; | | "Set the snooping profile"; |
| leaf profile { | | leaf profile { |
| type xr:Cisco-ios-xr-string { | | type xr:Cisco-ios-xr-string { |
| length "1..32" { | | length "1..32" { |
| description | | description |
| "DHCPv4 Snooping profile name"; | | "DHCPv4 Snooping profile name"; |
| } | | } |
| } | | } |
| description | | description |
| "Attach a DHCP profile"; | | "Attach a DHCP profile"; |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| container dynamic-arp-inspection { | | container dynamic-arp-inspection { |
| presence "Indicates a dynamic-arp-inspection node is configured."; | | presence "Indicates a dynamic-arp-inspection node is configured."; |
| description | | description |
| "Dynamic ARP Inspection"; | | "Dynamic ARP Inspection"; |
| container logging { | | container logging { |
| presence "Indicates a logging node is configured."; | | presence "Indicates a logging node is configured."; |
| description | | description |
| "Enable Logging"; | | "Enable Logging"; |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "disable logging"; | | "disable logging"; |
| } | | } |
| } | | } |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Disable Dynamic Arp Inspection"; | | "Disable Dynamic Arp Inspection"; |
| } | | } |
| container address-validation { | | container address-validation { |
| presence "Indicates a address-validation node is configured."; | | presence "Indicates a address-validation node is configured."; |
| description | | description |
| "Address Validation Configurations"; | | "Address Validation Configurations"; |
| container src-mac { | | container src-mac { |
| presence "Indicates a src-mac node is configured."; | | presence "Indicates a src-mac node is configured."; |
| description | | description |
| "Match Source MAC Address"; | | "Match Source MAC Address"; |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "disable Source MAC Address check"; | | "disable Source MAC Address check"; |
| } | | } |
| } | | } |
| container dst-mac { | | container dst-mac { |
| presence "Indicates a dst-mac node is configured."; | | presence "Indicates a dst-mac node is configured."; |
| description | | description |
| "Match Destination MAC Address"; | | "Match Destination MAC Address"; |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "disable Destimation MAC Address check"; | | "disable Destimation MAC Address check"; |
| } | | } |
| } | | } |
| container ipv4 { | | container ipv4 { |
| presence "Indicates a ipv4 node is configured."; | | presence "Indicates a ipv4 node is configured."; |
| description | | description |
| "Match IPv4 Address"; | | "Match IPv4 Address"; |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "disable IPV4 Address check"; | | "disable IPV4 Address check"; |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| container flooding { | | container flooding { |
| description | | description |
| "Traffic flooding"; | | "Traffic flooding"; |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Disable flooding"; | | "Disable flooding"; |
| } | | } |
| n | | n | container unknown-unicast { |
| | | description |
| | | "Traffic flooding unknown unicast"; |
| | | container disable { |
| | | presence "Indicates a disable node is configured."; |
| | | description |
| | | "Disable Unknown Unicast flooding"; |
| | | } |
| | | } |
| } | | } |
| container igmp { | | container igmp { |
| description | | description |
| "IGMP protocol"; | | "IGMP protocol"; |
| container snooping { | | container snooping { |
| description | | description |
| "Set the snooping profile"; | | "Set the snooping profile"; |
| leaf profile { | | leaf profile { |
| type xr:Cisco-ios-xr-string { | | type xr:Cisco-ios-xr-string { |
| length "1..32" { | | length "1..32" { |
| description | | description |
| "IGMP Snooping profile name"; | | "IGMP Snooping profile name"; |
| } | | } |
| } | | } |
| description | | description |
| "Attach an IGMP profile"; | | "Attach an IGMP profile"; |
| } | | } |
| } | | } |
| } | | } |
| container ip-source-guard { | | container ip-source-guard { |
| presence "Indicates a ip-source-guard node is configured."; | | presence "Indicates a ip-source-guard node is configured."; |
| description | | description |
| "IP Source Guard"; | | "IP Source Guard"; |
| container logging { | | container logging { |
| presence "Indicates a logging node is configured."; | | presence "Indicates a logging node is configured."; |
| description | | description |
| "Enable Logging"; | | "Enable Logging"; |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "disable logging"; | | "disable logging"; |
| } | | } |
| } | | } |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Disable IP Source Guard"; | | "Disable IP Source Guard"; |
| } | | } |
| } | | } |
| container mac { | | container mac { |
| description | | description |
| "MAC configuration commands"; | | "MAC configuration commands"; |
| container aging { | | container aging { |
| if-feature "l2vpn_is_cli_supported"; | | if-feature "l2vpn_is_cli_supported"; |
| description | | description |
| "MAC-Aging configuration commands"; | | "MAC-Aging configuration commands"; |
| leaf time { | | leaf time { |
| type uint32 { | | type uint32 { |
| range "300..30000" { | | range "300..30000" { |
| description | | description |
| "MAC address aging time in seconds"; | | "MAC address aging time in seconds"; |
| } | | } |
| } | | } |
| description | | description |
| "Mac aging"; | | "Mac aging"; |
| } | | } |
| container type { | | container type { |
| description | | description |
| "MAC address aging type"; | | "MAC address aging type"; |
| container absolute { | | container absolute { |
| presence "Indicates a absolute node is configured."; | | presence "Indicates a absolute node is configured."; |
| description | | description |
| "Absolute aging type"; | | "Absolute aging type"; |
| } | | } |
| container inactivity { | | container inactivity { |
| must "not(../absolute)"; | | must "not(../absolute)"; |
| presence "Indicates a inactivity node is configured."; | | presence "Indicates a inactivity node is configured."; |
| description | | description |
| "Inactivity aging type"; | | "Inactivity aging type"; |
| } | | } |
| } | | } |
| } | | } |
| container learning { | | container learning { |
| presence "Indicates a learning node is configured."; | | presence "Indicates a learning node is configured."; |
| description | | description |
| "MAC learning"; | | "MAC learning"; |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Disable MAC learning"; | | "Disable MAC learning"; |
| } | | } |
| } | | } |
| container limit { | | container limit { |
| description | | description |
| "MAC-Limit configuration commands"; | | "MAC-Limit configuration commands"; |
| leaf maximum { | | leaf maximum { |
| type uint32 { | | type uint32 { |
| range "0..4294967295" { | | range "0..4294967295" { |
| description | | description |
| "Number of MAC addresses after which MAC limit action is taken"; | | "Number of MAC addresses after which MAC limit action is taken"; |
| } | | } |
| } | | } |
| description | | description |
| "Number of MAC addresses after which MAC limit action is taken"; | | "Number of MAC addresses after which MAC limit action is taken"; |
| } | | } |
| container action { | | container action { |
| description | | description |
| "MAC address limit enforcement action"; | | "MAC address limit enforcement action"; |
| container flood { | | container flood { |
| must "not(../no-flood or ../shutdown or ../none)"; | | must "not(../no-flood or ../shutdown or ../none)"; |
| presence "Indicates a flood node is configured."; | | presence "Indicates a flood node is configured."; |
| description | | description |
| "Stop learning but continue flooding"; | | "Stop learning but continue flooding"; |
| } | | } |
| container no-flood { | | container no-flood { |
| must "not(../flood or ../shutdown or ../none)"; | | must "not(../flood or ../shutdown or ../none)"; |
| presence "Indicates a no-flood node is configured."; | | presence "Indicates a no-flood node is configured."; |
| description | | description |
| "Stop learning and stop flooding"; | | "Stop learning and stop flooding"; |
| } | | } |
| container shutdown { | | container shutdown { |
| must "not(../flood or ../no-flood or ../none)"; | | must "not(../flood or ../no-flood or ../none)"; |
| presence "Indicates a shutdown node is configured."; | | presence "Indicates a shutdown node is configured."; |
| description | | description |
| "Stop forwarding"; | | "Stop forwarding"; |
| } | | } |
| container none { | | container none { |
| must "not(../flood or ../no-flood or ../shutdown)"; | | must "not(../flood or ../no-flood or ../shutdown)"; |
| presence "Indicates a none node is configured."; | | presence "Indicates a none node is configured."; |
| description | | description |
| "No action"; | | "No action"; |
| } | | } |
| } | | } |
| container notification { | | container notification { |
| description | | description |
| "MAC address limit notification action"; | | "MAC address limit notification action"; |
| container trap { | | container trap { |
| must "not(../both or ../none or ../syslog)"; | | must "not(../both or ../none or ../syslog)"; |
| presence "Indicates a trap node is configured."; | | presence "Indicates a trap node is configured."; |
| description | | description |
| "Generate SNMP trap"; | | "Generate SNMP trap"; |
| } | | } |
| container both { | | container both { |
| must "not(../trap or ../none or ../syslog)"; | | must "not(../trap or ../none or ../syslog)"; |
| presence "Indicates a both node is configured."; | | presence "Indicates a both node is configured."; |
| description | | description |
| "Generate syslog message and SNMP trap"; | | "Generate syslog message and SNMP trap"; |
| } | | } |
| container none { | | container none { |
| must "not(../trap or ../both or ../syslog)"; | | must "not(../trap or ../both or ../syslog)"; |
| presence "Indicates a none node is configured."; | | presence "Indicates a none node is configured."; |
| description | | description |
| "No notification"; | | "No notification"; |
| } | | } |
| container syslog { | | container syslog { |
| must "not(../trap or ../both or ../none)"; | | must "not(../trap or ../both or ../none)"; |
| presence "Indicates a syslog node is configured."; | | presence "Indicates a syslog node is configured."; |
| description | | description |
| "Generate syslog message"; | | "Generate syslog message"; |
| } | | } |
| } | | } |
| } | | } |
| container port-down { | | container port-down { |
| description | | description |
| "Configure action when port goes down"; | | "Configure action when port goes down"; |
| container flush { | | container flush { |
| description | | description |
| "Configure MAC flush when port goes down"; | | "Configure MAC flush when port goes down"; |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Disable MAC flush when port goes down"; | | "Disable MAC flush when port goes down"; |
| } | | } |
| } | | } |
| } | | } |
| container secure { | | container secure { |
| presence "Indicates a secure node is configured."; | | presence "Indicates a secure node is configured."; |
| description | | description |
| "MAC Secure configuration commands"; | | "MAC Secure configuration commands"; |
| container logging { | | container logging { |
| presence "Indicates a logging node is configured."; | | presence "Indicates a logging node is configured."; |
| description | | description |
| "Enable Logging"; | | "Enable Logging"; |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "disable logging"; | | "disable logging"; |
| } | | } |
| } | | } |
| container action { | | container action { |
| description | | description |
| "MAC secure enforcement action"; | | "MAC secure enforcement action"; |
| container none { | | container none { |
| must "not(../shutdown)"; | | must "not(../shutdown)"; |
| presence "Indicates a none node is configured."; | | presence "Indicates a none node is configured."; |
| description | | description |
| "Forward the violating packet and allow the MAC to be relearned"; | | "Forward the violating packet and allow the MAC to be relearned"; |
| } | | } |
| container shutdown { | | container shutdown { |
| must "not(../none)"; | | must "not(../none)"; |
| presence "Indicates a shutdown node is configured."; | | presence "Indicates a shutdown node is configured."; |
| description | | description |
| "Shutdown the violating bridge port"; | | "Shutdown the violating bridge port"; |
| } | | } |
| container restrict { | | container restrict { |
| must "not(../none or ../shutdown)"; | | must "not(../none or ../shutdown)"; |
| presence "Indicates a restrict node is configured."; | | presence "Indicates a restrict node is configured."; |
| description | | description |
| "Drop the violating packet and not allow the MAC to be relearned"; | | "Drop the violating packet and not allow the MAC to be relearned"; |
| } | | } |
| } | | } |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Disable MAC Secure"; | | "Disable MAC Secure"; |
| } | | } |
| container shutdown-recovery-timeout { | | container shutdown-recovery-timeout { |
| description | | description |
| "Recovery-timer to automatically revert shutdown action"; | | "Recovery-timer to automatically revert shutdown action"; |
| container disable { | | container disable { |
| must "not(../recovery-timer-in-second)"; | | must "not(../recovery-timer-in-second)"; |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Disable shutdown recovery timer"; | | "Disable shutdown recovery timer"; |
| } | | } |
| leaf recovery-timer-in-second { | | leaf recovery-timer-in-second { |
| type uint32 { | | type uint32 { |
| range "10..3600" { | | range "10..3600" { |
| description | | description |
| "Recovery timer in second"; | | "Recovery timer in second"; |
| } | | } |
| } | | } |
| must "not(../disable)"; | | must "not(../disable)"; |
| description | | description |
| "Recovery timer in second"; | | "Recovery timer in second"; |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| container mld { | | container mld { |
| description | | description |
| "MLD protocol"; | | "MLD protocol"; |
| container snooping { | | container snooping { |
| description | | description |
| "Set the snooping profile"; | | "Set the snooping profile"; |
| leaf profile { | | leaf profile { |
| type xr:Cisco-ios-xr-string { | | type xr:Cisco-ios-xr-string { |
| length "1..32" { | | length "1..32" { |
| description | | description |
| "MLD Snooping profile name"; | | "MLD Snooping profile name"; |
| } | | } |
| } | | } |
| description | | description |
| "Attach a MLD profile"; | | "Attach a MLD profile"; |
| } | | } |
| } | | } |
| } | | } |
| container storm-control { | | container storm-control { |
| description | | description |
| "Storm Control"; | | "Storm Control"; |
| container broadcast { | | container broadcast { |
| description | | description |
| "Broadcast Storm Control"; | | "Broadcast Storm Control"; |
| leaf pps { | | leaf pps { |
| type uint32 { | | type uint32 { |
| range "1..160000" { | | range "1..160000" { |
| description | | description |
| "storm control pps value"; | | "storm control pps value"; |
| } | | } |
| } | | } |
| description | | description |
| "Set the storm control pps"; | | "Set the storm control pps"; |
| } | | } |
| leaf kbps { | | leaf kbps { |
| type uint32 { | | type uint32 { |
| range "64..1280000" { | | range "64..1280000" { |
| description | | description |
| "storm control kbps value"; | | "storm control kbps value"; |
| } | | } |
| } | | } |
| description | | description |
| "Set the storm control kbps"; | | "Set the storm control kbps"; |
| } | | } |
| } | | } |
| container multicast { | | container multicast { |
| description | | description |
| "Multicast Storm Control"; | | "Multicast Storm Control"; |
| leaf pps { | | leaf pps { |
| type uint32 { | | type uint32 { |
| range "1..160000" { | | range "1..160000" { |
| description | | description |
| "storm control pps value"; | | "storm control pps value"; |
| } | | } |
| } | | } |
| description | | description |
| "Set the storm control pps"; | | "Set the storm control pps"; |
| } | | } |
| leaf kbps { | | leaf kbps { |
| type uint32 { | | type uint32 { |
| range "64..1280000" { | | range "64..1280000" { |
| description | | description |
| "storm control kbps value"; | | "storm control kbps value"; |
| } | | } |
| } | | } |
| description | | description |
| "Set the storm control kbps"; | | "Set the storm control kbps"; |
| } | | } |
| } | | } |
| container unknown-unicast { | | container unknown-unicast { |
| description | | description |
| "Unknown-unicast Storm Control"; | | "Unknown-unicast Storm Control"; |
| leaf pps { | | leaf pps { |
| type uint32 { | | type uint32 { |
| range "1..160000" { | | range "1..160000" { |
| description | | description |
| "storm control pps value"; | | "storm control pps value"; |
| } | | } |
| } | | } |
| description | | description |
| "Set the storm control pps"; | | "Set the storm control pps"; |
| } | | } |
| leaf kbps { | | leaf kbps { |
| type uint32 { | | type uint32 { |
| range "64..1280000" { | | range "64..1280000" { |
| description | | description |
| "storm control kbps value"; | | "storm control kbps value"; |
| } | | } |
| } | | } |
| description | | description |
| "Set the storm control kbps"; | | "Set the storm control kbps"; |
| } | | } |
| } | | } |
| } | | } |
| container split-horizon { | | container split-horizon { |
| description | | description |
| "Configure split-horizon group"; | | "Configure split-horizon group"; |
| container group { | | container group { |
| presence "Indicates a group node is configured."; | | presence "Indicates a group node is configured."; |
| description | | description |
| "Configure split-horizon group"; | | "Configure split-horizon group"; |
| } | | } |
| } | | } |
| container static-mac-addresses { | | container static-mac-addresses { |
| description | | description |
| "Static MAC address"; | | "Static MAC address"; |
| list static-mac-address { | | list static-mac-address { |
| key "mac-address"; | | key "mac-address"; |
| description | | description |
| "Static MAC address"; | | "Static MAC address"; |
| leaf mac-address { | | leaf mac-address { |
| type yang:mac-address; | | type yang:mac-address; |
| description | | description |
| "Static MAC address"; | | "Static MAC address"; |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| container routed { | | container routed { |
| description | | description |
| "Bridge domain L3 interface"; | | "Bridge domain L3 interface"; |
| list interface { | | list interface { |
| key "interface-name"; | | key "interface-name"; |
| description | | description |
| "Assign interface to bridge domain"; | | "Assign interface to bridge domain"; |
| leaf interface-name { | | leaf interface-name { |
| type xr:Interface-name; | | type xr:Interface-name; |
| description | | description |
| "Assign interface to bridge domain"; | | "Assign interface to bridge domain"; |
| } | | } |
| container split-horizon { | | container split-horizon { |
| description | | description |
| "Configure split-horizon group"; | | "Configure split-horizon group"; |
| container group { | | container group { |
| description | | description |
| "Configure split-horizon group"; | | "Configure split-horizon group"; |
| container core { | | container core { |
| presence "Indicates a core node is configured."; | | presence "Indicates a core node is configured."; |
| description | | description |
| "Configure BVI under SHG 1"; | | "Configure BVI under SHG 1"; |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| container shutdown { | | container shutdown { |
| presence "Indicates a shutdown node is configured."; | | presence "Indicates a shutdown node is configured."; |
| description | | description |
| "shutdown the Bridge Domain"; | | "shutdown the Bridge Domain"; |
| } | | } |
| container vfis { | | container vfis { |
| description | | description |
| "Specify the virtual forwarding interface name"; | | "Specify the virtual forwarding interface name"; |
| list vfi { | | list vfi { |
| key "vfi-name"; | | key "vfi-name"; |
| description | | description |
| "Specify the virtual forwarding interface name"; | | "Specify the virtual forwarding interface name"; |
| leaf vfi-name { | | leaf vfi-name { |
| type xr:Cisco-ios-xr-string { | | type xr:Cisco-ios-xr-string { |
| length "1..32" { | | length "1..32" { |
| description | | description |
| "Name of the Virtual Forwarding Interface"; | | "Name of the Virtual Forwarding Interface"; |
| } | | } |
| } | | } |
| description | | description |
| "Specify the virtual forwarding interface name"; | | "Specify the virtual forwarding interface name"; |
| } | | } |
| leaf vpn-id { | | leaf vpn-id { |
| type uint32 { | | type uint32 { |
| range "1..4294967295" { | | range "1..4294967295" { |
| description | | description |
| "Value of the VPN ID"; | | "Value of the VPN ID"; |
| } | | } |
| } | | } |
| description | | description |
| "VPN Identifier (VPN ID)"; | | "VPN Identifier (VPN ID)"; |
| } | | } |
| container shutdown { | | container shutdown { |
| presence "Indicates a shutdown node is configured."; | | presence "Indicates a shutdown node is configured."; |
| description | | description |
| "shutdown the Virtual Forwarding Interface"; | | "shutdown the Virtual Forwarding Interface"; |
| } | | } |
| container autodiscovery { | | container autodiscovery { |
| description | | description |
| "Enable auto-discovery in this VFI"; | | "Enable auto-discovery in this VFI"; |
| container bgp { | | container bgp { |
| presence "Indicates a bgp node is configured."; | | presence "Indicates a bgp node is configured."; |
| description | | description |
| "Enable BGP auto-discovery in this VFI"; | | "Enable BGP auto-discovery in this VFI"; |
| container rd { | | container rd { |
| description | | description |
| "route distinguisher"; | | "route distinguisher"; |
| container auto { | | container auto { |
| must "not(../two-byte-as-number or ../four-byte-as-number or ../ipv4-address)"; | | must "not(../two-byte-as-number or ../four-byte-as-number or ../ipv4-address)"; |
| presence "Indicates a auto node is configured."; | | presence "Indicates a auto node is configured."; |
| description | | description |
| "Automatic route distinguisher"; | | "Automatic route distinguisher"; |
| } | | } |
| leaf two-byte-as-number { | | leaf two-byte-as-number { |
| type uint32 { | | type uint32 { |
| range "1..65535" { | | range "1..65535" { |
| description | | description |
| "Two Byte AS number"; | | "Two Byte AS number"; |
| } | | } |
| } | | } |
| n | must "not(../four-byte-as-number or ../ipv4-address) and ../two-byte-as-assigned-number"; | n | must "not(../four-byte-as-number or ../ipv4-address)"; |
| description | | description |
| "Two Byte AS number"; | | "Two Byte AS number"; |
| } | | } |
| leaf two-byte-as-assigned-number { | | leaf two-byte-as-assigned-number { |
| type uint32 { | | type uint32 { |
| range "0..4294967295" { | | range "0..4294967295" { |
| description | | description |
| "AS:nn (hex or decimal format)"; | | "AS:nn (hex or decimal format)"; |
| } | | } |
| } | | } |
| must "../two-byte-as-number"; | | must "../two-byte-as-number"; |
| description | | description |
| "AS:nn (hex or decimal format)"; | | "AS:nn (hex or decimal format)"; |
| } | | } |
| leaf four-byte-as-number { | | leaf four-byte-as-number { |
| type uint32 { | | type uint32 { |
| range "65536..4294967295" { | | range "65536..4294967295" { |
| description | | description |
| "Four Byte AS number"; | | "Four Byte AS number"; |
| } | | } |
| } | | } |
| n | must "not(../two-byte-as-number or ../ipv4-address) and ../four-byte-as-assigned-number"; | n | must "not(../two-byte-as-number or ../ipv4-address)"; |
| description | | description |
| "Four Byte AS number"; | | "Four Byte AS number"; |
| } | | } |
| leaf four-byte-as-assigned-number { | | leaf four-byte-as-assigned-number { |
| type uint32 { | | type uint32 { |
| range "0..65535" { | | range "0..65535" { |
| description | | description |
| "AS:nn (hex or decimal format)"; | | "AS:nn (hex or decimal format)"; |
| } | | } |
| } | | } |
| must "../four-byte-as-number"; | | must "../four-byte-as-number"; |
| description | | description |
| "AS:nn (hex or decimal format)"; | | "AS:nn (hex or decimal format)"; |
| } | | } |
| leaf ipv4-address { | | leaf ipv4-address { |
| type inet:ipv4-address-no-zone; | | type inet:ipv4-address-no-zone; |
| n | must "not(../two-byte-as-number or ../four-byte-as-number) and ../ipv4-address-assigned-number"; | n | must "not(../two-byte-as-number or ../four-byte-as-number)"; |
| description | | description |
| "IP address"; | | "IP address"; |
| } | | } |
| leaf ipv4-address-assigned-number { | | leaf ipv4-address-assigned-number { |
| type uint32 { | | type uint32 { |
| range "0..65535" { | | range "0..65535" { |
| description | | description |
| "IP-address:nn (hex or decimal format)"; | | "IP-address:nn (hex or decimal format)"; |
| } | | } |
| } | | } |
| must "../ipv4-address"; | | must "../ipv4-address"; |
| description | | description |
| "IP-address:nn (hex or decimal format)"; | | "IP-address:nn (hex or decimal format)"; |
| } | | } |
| } | | } |
| container route-target { | | container route-target { |
| description | | description |
| "Route Target"; | | "Route Target"; |
| container import { | | container import { |
| description | | description |
| "Import Route Target"; | | "Import Route Target"; |
| container two-byte-as-rts { | | container two-byte-as-rts { |
| description | | description |
| "Two Byte AS Number Route Target"; | | "Two Byte AS Number Route Target"; |
| list two-byte-as-rt { | | list two-byte-as-rt { |
| key "two-byte-as-number assigned-number"; | | key "two-byte-as-number assigned-number"; |
| description | | description |
| "Two Byte AS Number Route Target"; | | "Two Byte AS Number Route Target"; |
| leaf two-byte-as-number { | | leaf two-byte-as-number { |
| type uint32 { | | type uint32 { |
| range "1..65535"; | | range "1..65535"; |
| } | | } |
| description | | description |
| "Two Byte AS Number"; | | "Two Byte AS Number"; |
| } | | } |
| leaf assigned-number { | | leaf assigned-number { |
| type uint32 { | | type uint32 { |
| range "0..4294967295" { | | range "0..4294967295" { |
| description | | description |
| "AS:nn (hex or decimal format)"; | | "AS:nn (hex or decimal format)"; |
| } | | } |
| } | | } |
| description | | description |
| "AS:nn (hex or decimal format)"; | | "AS:nn (hex or decimal format)"; |
| } | | } |
| } | | } |
| } | | } |
| container four-byte-as-rts { | | container four-byte-as-rts { |
| description | | description |
| "Four Byte AS number Route Target"; | | "Four Byte AS number Route Target"; |
| list four-byte-as-rt { | | list four-byte-as-rt { |
| key "four-byte-as-number assigned-number"; | | key "four-byte-as-number assigned-number"; |
| description | | description |
| "Four Byte AS number Route Target"; | | "Four Byte AS number Route Target"; |
| leaf four-byte-as-number { | | leaf four-byte-as-number { |
| type uint32 { | | type uint32 { |
| range "65536..4294967295"; | | range "65536..4294967295"; |
| } | | } |
| description | | description |
| "Four Byte AS number"; | | "Four Byte AS number"; |
| } | | } |
| leaf assigned-number { | | leaf assigned-number { |
| type uint32 { | | type uint32 { |
| range "0..65535" { | | range "0..65535" { |
| description | | description |
| "AS:nn (hex or decimal format)"; | | "AS:nn (hex or decimal format)"; |
| } | | } |
| } | | } |
| description | | description |
| "AS:nn (hex or decimal format)"; | | "AS:nn (hex or decimal format)"; |
| } | | } |
| } | | } |
| } | | } |
| container ipv4-address-rts { | | container ipv4-address-rts { |
| description | | description |
| "IP address Route Target"; | | "IP address Route Target"; |
| list ipv4-address-rt { | | list ipv4-address-rt { |
| key "ipv4-address assigned-number"; | | key "ipv4-address assigned-number"; |
| description | | description |
| "IP address"; | | "IP address"; |
| leaf ipv4-address { | | leaf ipv4-address { |
| type inet:ipv4-address-no-zone; | | type inet:ipv4-address-no-zone; |
| description | | description |
| "IP address"; | | "IP address"; |
| } | | } |
| leaf assigned-number { | | leaf assigned-number { |
| type uint32 { | | type uint32 { |
| range "0..65535" { | | range "0..65535" { |
| description | | description |
| "IP-address:nn (hex or decimal format)"; | | "IP-address:nn (hex or decimal format)"; |
| } | | } |
| } | | } |
| description | | description |
| "IP-address:nn (hex or decimal format)"; | | "IP-address:nn (hex or decimal format)"; |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| container export { | | container export { |
| description | | description |
| "Export Route Target"; | | "Export Route Target"; |
| container two-byte-as-rts { | | container two-byte-as-rts { |
| description | | description |
| "Two Byte AS Number Route Target"; | | "Two Byte AS Number Route Target"; |
| list two-byte-as-rt { | | list two-byte-as-rt { |
| key "two-byte-as-number assigned-number"; | | key "two-byte-as-number assigned-number"; |
| description | | description |
| "Two Byte AS Number Route Target"; | | "Two Byte AS Number Route Target"; |
| leaf two-byte-as-number { | | leaf two-byte-as-number { |
| type uint32 { | | type uint32 { |
| range "1..65535"; | | range "1..65535"; |
| } | | } |
| description | | description |
| "Two Byte AS Number"; | | "Two Byte AS Number"; |
| } | | } |
| leaf assigned-number { | | leaf assigned-number { |
| type uint32 { | | type uint32 { |
| range "0..4294967295" { | | range "0..4294967295" { |
| description | | description |
| "AS:nn (hex or decimal format)"; | | "AS:nn (hex or decimal format)"; |
| } | | } |
| } | | } |
| description | | description |
| "AS:nn (hex or decimal format)"; | | "AS:nn (hex or decimal format)"; |
| } | | } |
| } | | } |
| } | | } |
| container four-byte-as-rts { | | container four-byte-as-rts { |
| description | | description |
| "Four Byte AS number Route Target"; | | "Four Byte AS number Route Target"; |
| list four-byte-as-rt { | | list four-byte-as-rt { |
| key "four-byte-as-number assigned-number"; | | key "four-byte-as-number assigned-number"; |
| description | | description |
| "Four Byte AS number Route Target"; | | "Four Byte AS number Route Target"; |
| leaf four-byte-as-number { | | leaf four-byte-as-number { |
| type uint32 { | | type uint32 { |
| range "65536..4294967295"; | | range "65536..4294967295"; |
| } | | } |
| description | | description |
| "Four Byte AS number"; | | "Four Byte AS number"; |
| } | | } |
| leaf assigned-number { | | leaf assigned-number { |
| type uint32 { | | type uint32 { |
| range "0..65535" { | | range "0..65535" { |
| description | | description |
| "AS:nn (hex or decimal format)"; | | "AS:nn (hex or decimal format)"; |
| } | | } |
| } | | } |
| description | | description |
| "AS:nn (hex or decimal format)"; | | "AS:nn (hex or decimal format)"; |
| } | | } |
| } | | } |
| } | | } |
| container ipv4-address-rts { | | container ipv4-address-rts { |
| description | | description |
| "IP address Route Target"; | | "IP address Route Target"; |
| list ipv4-address-rt { | | list ipv4-address-rt { |
| key "ipv4-address assigned-number"; | | key "ipv4-address assigned-number"; |
| description | | description |
| "IP address"; | | "IP address"; |
| leaf ipv4-address { | | leaf ipv4-address { |
| type inet:ipv4-address-no-zone; | | type inet:ipv4-address-no-zone; |
| description | | description |
| "IP address"; | | "IP address"; |
| } | | } |
| leaf assigned-number { | | leaf assigned-number { |
| type uint32 { | | type uint32 { |
| range "0..65535" { | | range "0..65535" { |
| description | | description |
| "IP-address:nn (hex or decimal format)"; | | "IP-address:nn (hex or decimal format)"; |
| } | | } |
| } | | } |
| description | | description |
| "IP-address:nn (hex or decimal format)"; | | "IP-address:nn (hex or decimal format)"; |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| container two-byte-as-rts { | | container two-byte-as-rts { |
| description | | description |
| "Two Byte AS Number Route Target"; | | "Two Byte AS Number Route Target"; |
| list two-byte-as-rt { | | list two-byte-as-rt { |
| key "two-byte-as-number assigned-number"; | | key "two-byte-as-number assigned-number"; |
| description | | description |
| "Two Byte AS Number Route Target"; | | "Two Byte AS Number Route Target"; |
| leaf two-byte-as-number { | | leaf two-byte-as-number { |
| type uint32 { | | type uint32 { |
| range "1..65535"; | | range "1..65535"; |
| } | | } |
| description | | description |
| "Two Byte AS Number"; | | "Two Byte AS Number"; |
| } | | } |
| leaf assigned-number { | | leaf assigned-number { |
| type uint32 { | | type uint32 { |
| range "0..4294967295" { | | range "0..4294967295" { |
| description | | description |
| "AS:nn (hex or decimal format)"; | | "AS:nn (hex or decimal format)"; |
| } | | } |
| } | | } |
| description | | description |
| "AS:nn (hex or decimal format)"; | | "AS:nn (hex or decimal format)"; |
| } | | } |
| } | | } |
| } | | } |
| container four-byte-as-rts { | | container four-byte-as-rts { |
| description | | description |
| "Four Byte AS number Route Target"; | | "Four Byte AS number Route Target"; |
| list four-byte-as-rt { | | list four-byte-as-rt { |
| key "four-byte-as-number assigned-number"; | | key "four-byte-as-number assigned-number"; |
| description | | description |
| "Four Byte AS number Route Target"; | | "Four Byte AS number Route Target"; |
| leaf four-byte-as-number { | | leaf four-byte-as-number { |
| type uint32 { | | type uint32 { |
| range "65536..4294967295"; | | range "65536..4294967295"; |
| } | | } |
| description | | description |
| "Four Byte AS number"; | | "Four Byte AS number"; |
| } | | } |
| leaf assigned-number { | | leaf assigned-number { |
| type uint32 { | | type uint32 { |
| range "0..65535" { | | range "0..65535" { |
| description | | description |
| "AS:nn (hex or decimal format)"; | | "AS:nn (hex or decimal format)"; |
| } | | } |
| } | | } |
| description | | description |
| "AS:nn (hex or decimal format)"; | | "AS:nn (hex or decimal format)"; |
| } | | } |
| } | | } |
| } | | } |
| container ipv4-address-rts { | | container ipv4-address-rts { |
| description | | description |
| "IP address Route Target"; | | "IP address Route Target"; |
| list ipv4-address-rt { | | list ipv4-address-rt { |
| key "ipv4-address assigned-number"; | | key "ipv4-address assigned-number"; |
| description | | description |
| "IP address"; | | "IP address"; |
| leaf ipv4-address { | | leaf ipv4-address { |
| type inet:ipv4-address-no-zone; | | type inet:ipv4-address-no-zone; |
| description | | description |
| "IP address"; | | "IP address"; |
| } | | } |
| leaf assigned-number { | | leaf assigned-number { |
| type uint32 { | | type uint32 { |
| range "0..65535" { | | range "0..65535" { |
| description | | description |
| "IP-address:nn (hex or decimal format)"; | | "IP-address:nn (hex or decimal format)"; |
| } | | } |
| } | | } |
| description | | description |
| "IP-address:nn (hex or decimal format)"; | | "IP-address:nn (hex or decimal format)"; |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| container control-word { | | container control-word { |
| presence "Indicates a control-word node is configured."; | | presence "Indicates a control-word node is configured."; |
| description | | description |
| "Enable control-word for BGP-Autodiscovered PWs for this VFI"; | | "Enable control-word for BGP-Autodiscovered PWs for this VFI"; |
| } | | } |
| container signaling-protocol { | | container signaling-protocol { |
| description | | description |
| "Enable signaling protocol for this VFI"; | | "Enable signaling protocol for this VFI"; |
| container bgp { | | container bgp { |
| presence "Indicates a bgp node is configured."; | | presence "Indicates a bgp node is configured."; |
| description | | description |
| "Enable BGP signaling protocol for this VFI"; | | "Enable BGP signaling protocol for this VFI"; |
| leaf ve-id { | | leaf ve-id { |
| type uint32 { | | type uint32 { |
| range "1..16384" { | | range "1..16384" { |
| description | | description |
| "Value of the local VE ID"; | | "Value of the local VE ID"; |
| } | | } |
| } | | } |
| description | | description |
| "Local Virtual Edge Identifier (VE ID)"; | | "Local Virtual Edge Identifier (VE ID)"; |
| } | | } |
| leaf ve-range { | | leaf ve-range { |
| if-feature "l2vpn_is_cli_supported"; | | if-feature "l2vpn_is_cli_supported"; |
| type uint32 { | | type uint32 { |
| range "11..100" { | | range "11..100" { |
| description | | description |
| "Value of the VE Range"; | | "Value of the VE Range"; |
| } | | } |
| } | | } |
| description | | description |
| "Local Virtual Edge Block Configurable Range"; | | "Local Virtual Edge Block Configurable Range"; |
| } | | } |
| container load-balancing { | | container load-balancing { |
| description | | description |
| "Load Balancing"; | | "Load Balancing"; |
| container flow-label { | | container flow-label { |
| description | | description |
| "Flow label based load balancing setting"; | | "Flow label based load balancing setting"; |
| container transmit { | | container transmit { |
| must "not(../receive or ../both)"; | | must "not(../receive or ../both)"; |
| presence "Indicates a transmit node is configured."; | | presence "Indicates a transmit node is configured."; |
| description | | description |
| "Insert Flow label when transmit "; | | "Insert Flow label when transmit "; |
| } | | } |
| container receive { | | container receive { |
| must "not(../transmit or ../both)"; | | must "not(../transmit or ../both)"; |
| presence "Indicates a receive node is configured."; | | presence "Indicates a receive node is configured."; |
| description | | description |
| "Discard Flow label when receive"; | | "Discard Flow label when receive"; |
| } | | } |
| container both { | | container both { |
| must "not(../transmit or ../receive)"; | | must "not(../transmit or ../receive)"; |
| presence "Indicates a both node is configured."; | | presence "Indicates a both node is configured."; |
| description | | description |
| "Insert/Discard Flow label when transmit/recceive"; | | "Insert/Discard Flow label when transmit/recceive"; |
| } | | } |
| container static { | | container static { |
| must "../transmit or ../receive or ../both"; | | must "../transmit or ../receive or ../both"; |
| presence "Indicates a static node is configured."; | | presence "Indicates a static node is configured."; |
| description | | description |
| "Set Flow label parameters statically"; | | "Set Flow label parameters statically"; |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| container ldp { | | container ldp { |
| presence "Indicates a ldp node is configured."; | | presence "Indicates a ldp node is configured."; |
| description | | description |
| "Enable LDP signaling protocol for this VFI"; | | "Enable LDP signaling protocol for this VFI"; |
| container vpls-id { | | container vpls-id { |
| if-feature "l2vpn_is_cli_supported"; | | if-feature "l2vpn_is_cli_supported"; |
| description | | description |
| "VPLS ID"; | | "VPLS ID"; |
| leaf two-byte-as-number { | | leaf two-byte-as-number { |
| type uint32 { | | type uint32 { |
| range "1..65535" { | | range "1..65535" { |
| description | | description |
| "Two Byte AS number"; | | "Two Byte AS number"; |
| } | | } |
| } | | } |
| n | must "not(../ipv4-address) and ../two-byte-as-assigned-number"; | n | must "not(../ipv4-address)"; |
| description | | description |
| "Two Byte AS number"; | | "Two Byte AS number"; |
| } | | } |
| leaf two-byte-as-assigned-number { | | leaf two-byte-as-assigned-number { |
| type uint32 { | | type uint32 { |
| range "0..4294967295" { | | range "0..4294967295" { |
| description | | description |
| "AS:nn (hex or decimal format)"; | | "AS:nn (hex or decimal format)"; |
| } | | } |
| } | | } |
| must "../two-byte-as-number"; | | must "../two-byte-as-number"; |
| description | | description |
| "AS:nn (hex or decimal format)"; | | "AS:nn (hex or decimal format)"; |
| } | | } |
| leaf ipv4-address { | | leaf ipv4-address { |
| type inet:ipv4-address-no-zone; | | type inet:ipv4-address-no-zone; |
| n | must "not(../two-byte-as-number) and ../ipv4-address-assigned-number"; | n | must "not(../two-byte-as-number)"; |
| description | | description |
| "IP address"; | | "IP address"; |
| } | | } |
| leaf ipv4-address-assigned-number { | | leaf ipv4-address-assigned-number { |
| type uint32 { | | type uint32 { |
| range "0..32767" { | | range "0..32767" { |
| description | | description |
| "IP-address:nn (hex or decimal format)"; | | "IP-address:nn (hex or decimal format)"; |
| } | | } |
| } | | } |
| must "../ipv4-address"; | | must "../ipv4-address"; |
| description | | description |
| "IP-address:nn (hex or decimal format)"; | | "IP-address:nn (hex or decimal format)"; |
| } | | } |
| container load-balancing { | | container load-balancing { |
| description | | description |
| "Load Balancing"; | | "Load Balancing"; |
| container flow-label { | | container flow-label { |
| description | | description |
| "Flow label based load balancing setting"; | | "Flow label based load balancing setting"; |
| container transmit { | | container transmit { |
| must "not(../receive or ../both)"; | | must "not(../receive or ../both)"; |
| presence "Indicates a transmit node is configured."; | | presence "Indicates a transmit node is configured."; |
| description | | description |
| "Insert Flow label when transmit "; | | "Insert Flow label when transmit "; |
| } | | } |
| container receive { | | container receive { |
| must "not(../transmit or ../both)"; | | must "not(../transmit or ../both)"; |
| presence "Indicates a receive node is configured."; | | presence "Indicates a receive node is configured."; |
| description | | description |
| "Discard Flow label when receive"; | | "Discard Flow label when receive"; |
| } | | } |
| container both { | | container both { |
| must "not(../transmit or ../receive)"; | | must "not(../transmit or ../receive)"; |
| presence "Indicates a both node is configured."; | | presence "Indicates a both node is configured."; |
| description | | description |
| "Insert/Discard Flow label when transmit/recceive"; | | "Insert/Discard Flow label when transmit/recceive"; |
| } | | } |
| container static { | | container static { |
| must "../transmit or ../receive or ../both"; | | must "../transmit or ../receive or ../both"; |
| presence "Indicates a static node is configured."; | | presence "Indicates a static node is configured."; |
| description | | description |
| "Set Flow label parameters statically"; | | "Set Flow label parameters statically"; |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| leaf table-policy { | | leaf table-policy { |
| type xr:Route-policy-name; | | type xr:Route-policy-name; |
| description | | description |
| "Configure policy for installation of forwarding data to L2FIB"; | | "Configure policy for installation of forwarding data to L2FIB"; |
| } | | } |
| container route-policy { | | container route-policy { |
| description | | description |
| "Apply route policy"; | | "Apply route policy"; |
| leaf export { | | leaf export { |
| type xr:Route-policy-name; | | type xr:Route-policy-name; |
| description | | description |
| "Export route policy"; | | "Export route policy"; |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| container multicast { | | container multicast { |
| if-feature "l2vpn_pw_p2mp_supported"; | | if-feature "l2vpn_pw_p2mp_supported"; |
| description | | description |
| "Point to multi-point pseudowire"; | | "Point to multi-point pseudowire"; |
| container p2mp { | | container p2mp { |
| presence "Indicates a p2mp node is configured."; | | presence "Indicates a p2mp node is configured."; |
| description | | description |
| "Enable point to multi-point pseudowire in this VFI"; | | "Enable point to multi-point pseudowire in this VFI"; |
| container transport { | | container transport { |
| description | | description |
| "Transport type selection"; | | "Transport type selection"; |
| container rsvp-te { | | container rsvp-te { |
| presence "Indicates a rsvp-te node is configured."; | | presence "Indicates a rsvp-te node is configured."; |
| description | | description |
| "Use RSVP-TE as transport"; | | "Use RSVP-TE as transport"; |
| container attribute-set { | | container attribute-set { |
| description | | description |
| "TE attribute set parameters"; | | "TE attribute set parameters"; |
| leaf p2mp-te { | | leaf p2mp-te { |
| type xr:Cisco-ios-xr-string { | | type xr:Cisco-ios-xr-string { |
| length "1..64" { | | length "1..64" { |
| description | | description |
| "Specify name"; | | "Specify name"; |
| } | | } |
| } | | } |
| description | | description |
| "TE tunnel attribute set name"; | | "TE tunnel attribute set name"; |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| container signaling-protocol { | | container signaling-protocol { |
| description | | description |
| "Signaling protocol selection"; | | "Signaling protocol selection"; |
| container bgp { | | container bgp { |
| presence "Indicates a bgp node is configured."; | | presence "Indicates a bgp node is configured."; |
| description | | description |
| "Use BGP for signaling"; | | "Use BGP for signaling"; |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| container neighbors { | | container neighbors { |
| description | | description |
| "Specify the peer to cross connect"; | | "Specify the peer to cross connect"; |
| list neighbor { | | list neighbor { |
| key "address pw-id"; | | key "address pw-id"; |
| description | | description |
| "Specify the peer to cross connect"; | | "Specify the peer to cross connect"; |
| leaf address { | | leaf address { |
| type inet:ipv4-address-no-zone; | | type inet:ipv4-address-no-zone; |
| description | | description |
| "IPv4 address of the peer"; | | "IPv4 address of the peer"; |
| } | | } |
| leaf pw-id { | | leaf pw-id { |
| type uint32 { | | type uint32 { |
| range "1..4294967295" { | | range "1..4294967295" { |
| description | | description |
| "Pseudowire ID"; | | "Pseudowire ID"; |
| } | | } |
| } | | } |
| description | | description |
| "Specify the pseudowire id"; | | "Specify the pseudowire id"; |
| } | | } |
| container static-mac-addresses { | | container static-mac-addresses { |
| description | | description |
| "Static MAC address"; | | "Static MAC address"; |
| list static-mac-address { | | list static-mac-address { |
| key "mac-address"; | | key "mac-address"; |
| description | | description |
| "Static MAC address"; | | "Static MAC address"; |
| leaf mac-address { | | leaf mac-address { |
| type yang:mac-address; | | type yang:mac-address; |
| description | | description |
| "Static MAC address"; | | "Static MAC address"; |
| } | | } |
| } | | } |
| } | | } |
| container mpls { | | container mpls { |
| description | | description |
| "MPLS L2VPN PW command"; | | "MPLS L2VPN PW command"; |
| container static { | | container static { |
| description | | description |
| "MPLS L2VPN static settings"; | | "MPLS L2VPN static settings"; |
| container label { | | container label { |
| description | | description |
| "MPLS L2VPN static labels"; | | "MPLS L2VPN static labels"; |
| leaf local { | | leaf local { |
| type uint32 { | | type uint32 { |
| range "16..1048575" { | | range "16..1048575" { |
| description | | description |
| "Local pseudowire label"; | | "Local pseudowire label"; |
| } | | } |
| } | | } |
| must "../remote"; | | must "../remote"; |
| description | | description |
| "Local pseudowire label"; | | "Local pseudowire label"; |
| } | | } |
| leaf remote { | | leaf remote { |
| type uint32 { | | type uint32 { |
| range "16..1048575" { | | range "16..1048575" { |
| description | | description |
| "Remote pseudowire label"; | | "Remote pseudowire label"; |
| } | | } |
| } | | } |
| must "../local"; | | must "../local"; |
| description | | description |
| "Remote pseudowire label"; | | "Remote pseudowire label"; |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| leaf pw-class { | | leaf pw-class { |
| type xr:Cisco-ios-xr-string { | | type xr:Cisco-ios-xr-string { |
| length "1..32" { | | length "1..32" { |
| description | | description |
| "Pseudowire-class name"; | | "Pseudowire-class name"; |
| } | | } |
| } | | } |
| description | | description |
| "PW class template name to use for this pseudowire"; | | "PW class template name to use for this pseudowire"; |
| } | | } |
| container dhcp { | | container dhcp { |
| presence "Indicates a dhcp node is configured."; | | presence "Indicates a dhcp node is configured."; |
| description | | description |
| "DHCP protocol"; | | "DHCP protocol"; |
| container ipv4 { | | container ipv4 { |
| description | | description |
| "IP Version 4"; | | "IP Version 4"; |
| container snoop { | | container snoop { |
| presence "Indicates a snoop node is configured."; | | presence "Indicates a snoop node is configured."; |
| description | | description |
| "Set the snooping profile"; | | "Set the snooping profile"; |
| leaf profile { | | leaf profile { |
| type xr:Cisco-ios-xr-string { | | type xr:Cisco-ios-xr-string { |
| length "1..32" { | | length "1..32" { |
| description | | description |
| "DHCPv4 Snooping profile name"; | | "DHCPv4 Snooping profile name"; |
| } | | } |
| } | | } |
| description | | description |
| "Attach a DHCP profile"; | | "Attach a DHCP profile"; |
| } | | } |
| } | | } |
| container none { | | container none { |
| presence "Indicates a none node is configured."; | | presence "Indicates a none node is configured."; |
| description | | description |
| "Disable DHCP snooping"; | | "Disable DHCP snooping"; |
| } | | } |
| } | | } |
| } | | } |
| container igmp { | | container igmp { |
| description | | description |
| "IGMP protocol"; | | "IGMP protocol"; |
| container snooping { | | container snooping { |
| description | | description |
| "Set the snooping profile"; | | "Set the snooping profile"; |
| leaf profile { | | leaf profile { |
| type xr:Cisco-ios-xr-string { | | type xr:Cisco-ios-xr-string { |
| length "1..32" { | | length "1..32" { |
| description | | description |
| "IGMP Snooping profile name"; | | "IGMP Snooping profile name"; |
| } | | } |
| } | | } |
| description | | description |
| "Attach an IGMP profile"; | | "Attach an IGMP profile"; |
| } | | } |
| } | | } |
| } | | } |
| container mld { | | container mld { |
| description | | description |
| "MLD protocol"; | | "MLD protocol"; |
| container snooping { | | container snooping { |
| description | | description |
| "Set the snooping profile"; | | "Set the snooping profile"; |
| leaf profile { | | leaf profile { |
| type xr:Cisco-ios-xr-string { | | type xr:Cisco-ios-xr-string { |
| length "1..32" { | | length "1..32" { |
| description | | description |
| "MLD Snooping profile name"; | | "MLD Snooping profile name"; |
| } | | } |
| } | | } |
| description | | description |
| "Attach a MLD profile"; | | "Attach a MLD profile"; |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| container access-vfis { | | container access-vfis { |
| description | | description |
| "Specify the access virtual forwarding interface name"; | | "Specify the access virtual forwarding interface name"; |
| list access-vfi { | | list access-vfi { |
| key "access-vfi-name"; | | key "access-vfi-name"; |
| description | | description |
| "Specify the access virtual forwarding interface name"; | | "Specify the access virtual forwarding interface name"; |
| leaf access-vfi-name { | | leaf access-vfi-name { |
| type xr:Cisco-ios-xr-string { | | type xr:Cisco-ios-xr-string { |
| length "1..32" { | | length "1..32" { |
| description | | description |
| "Name of the Access Virtual Forwarding Interface"; | | "Name of the Access Virtual Forwarding Interface"; |
| } | | } |
| } | | } |
| description | | description |
| "Specify the access virtual forwarding interface name"; | | "Specify the access virtual forwarding interface name"; |
| } | | } |
| container shutdown { | | container shutdown { |
| presence "Indicates a shutdown node is configured."; | | presence "Indicates a shutdown node is configured."; |
| description | | description |
| "shutdown the Access Virtual Forwarding Interface"; | | "shutdown the Access Virtual Forwarding Interface"; |
| } | | } |
| container neighbors { | | container neighbors { |
| description | | description |
| "Specify the peer to cross connect"; | | "Specify the peer to cross connect"; |
| list neighbor { | | list neighbor { |
| key "address pw-id"; | | key "address pw-id"; |
| description | | description |
| "Specify the peer to cross connect"; | | "Specify the peer to cross connect"; |
| leaf address { | | leaf address { |
| type inet:ipv4-address-no-zone; | | type inet:ipv4-address-no-zone; |
| description | | description |
| "IPv4 address of the peer"; | | "IPv4 address of the peer"; |
| } | | } |
| leaf pw-id { | | leaf pw-id { |
| type uint32 { | | type uint32 { |
| range "1..4294967295" { | | range "1..4294967295" { |
| description | | description |
| "Pseudowire ID"; | | "Pseudowire ID"; |
| } | | } |
| } | | } |
| description | | description |
| "Specify the pseudowire id"; | | "Specify the pseudowire id"; |
| } | | } |
| container static-mac-addresses { | | container static-mac-addresses { |
| description | | description |
| "Static MAC address"; | | "Static MAC address"; |
| list static-mac-address { | | list static-mac-address { |
| key "mac-address"; | | key "mac-address"; |
| description | | description |
| "Static MAC address"; | | "Static MAC address"; |
| leaf mac-address { | | leaf mac-address { |
| type yang:mac-address; | | type yang:mac-address; |
| description | | description |
| "Static MAC address"; | | "Static MAC address"; |
| } | | } |
| } | | } |
| } | | } |
| leaf pw-class { | | leaf pw-class { |
| type xr:Cisco-ios-xr-string { | | type xr:Cisco-ios-xr-string { |
| length "1..32" { | | length "1..32" { |
| description | | description |
| "Pseudowire-class name"; | | "Pseudowire-class name"; |
| } | | } |
| } | | } |
| description | | description |
| "PW class template name to use for this pseudowire"; | | "PW class template name to use for this pseudowire"; |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| container mac { | | container mac { |
| description | | description |
| "MAC configuration commands"; | | "MAC configuration commands"; |
| container aging { | | container aging { |
| if-feature "l2vpn_is_cli_supported"; | | if-feature "l2vpn_is_cli_supported"; |
| description | | description |
| "MAC-Aging configuration commands"; | | "MAC-Aging configuration commands"; |
| leaf time { | | leaf time { |
| type uint32 { | | type uint32 { |
| range "300..30000" { | | range "300..30000" { |
| description | | description |
| "MAC address aging time in seconds"; | | "MAC address aging time in seconds"; |
| } | | } |
| } | | } |
| description | | description |
| "Mac aging"; | | "Mac aging"; |
| } | | } |
| container type { | | container type { |
| description | | description |
| "MAC address aging type"; | | "MAC address aging type"; |
| container absolute { | | container absolute { |
| presence "Indicates a absolute node is configured."; | | presence "Indicates a absolute node is configured."; |
| description | | description |
| "Absolute aging type"; | | "Absolute aging type"; |
| } | | } |
| } | | } |
| } | | } |
| container static-addresses { | | container static-addresses { |
| description | | description |
| "Static MAC address for filtering"; | | "Static MAC address for filtering"; |
| list static-address { | | list static-address { |
| must "drop"; | | must "drop"; |
| key "mac-address"; | | key "mac-address"; |
| description | | description |
| "Static MAC address for filtering"; | | "Static MAC address for filtering"; |
| leaf mac-address { | | leaf mac-address { |
| type yang:mac-address; | | type yang:mac-address; |
| description | | description |
| "Static MAC address for filtering"; | | "Static MAC address for filtering"; |
| } | | } |
| container drop { | | container drop { |
| presence "Indicates a drop node is configured."; | | presence "Indicates a drop node is configured."; |
| description | | description |
| "Drop matching packets"; | | "Drop matching packets"; |
| } | | } |
| } | | } |
| } | | } |
| container learning { | | container learning { |
| description | | description |
| "MAC learning"; | | "MAC learning"; |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Disable MAC learning"; | | "Disable MAC learning"; |
| } | | } |
| } | | } |
| container withdraw { | | container withdraw { |
| description | | description |
| "MAC withdraw"; | | "MAC withdraw"; |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Disable MAC withdraw"; | | "Disable MAC withdraw"; |
| } | | } |
| container access-pw { | | container access-pw { |
| description | | description |
| "MAC withdraw sent to Access PWs "; | | "MAC withdraw sent to Access PWs "; |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Disable MAC withdraw on Access PW"; | | "Disable MAC withdraw on Access PW"; |
| } | | } |
| } | | } |
| container relay { | | container relay { |
| presence "Indicates a relay node is configured."; | | presence "Indicates a relay node is configured."; |
| description | | description |
| "MAC withdraw relayed to Access PWs "; | | "MAC withdraw relayed to Access PWs "; |
| } | | } |
| container state-down { | | container state-down { |
| must "not(../optimize)"; | | must "not(../optimize)"; |
| presence "Indicates a state-down node is configured."; | | presence "Indicates a state-down node is configured."; |
| description | | description |
| "MAC withdraw sent on bridge port down"; | | "MAC withdraw sent on bridge port down"; |
| } | | } |
| container optimize { | | container optimize { |
| must "not(../state-down)"; | | must "not(../state-down)"; |
| presence "Indicates a optimize node is configured."; | | presence "Indicates a optimize node is configured."; |
| description | | description |
| "Optimized LDP MAC withdraw (when port goes down)"; | | "Optimized LDP MAC withdraw (when port goes down)"; |
| } | | } |
| } | | } |
| container limit { | | container limit { |
| description | | description |
| "MAC-Limit configuration commands"; | | "MAC-Limit configuration commands"; |
| leaf maximum { | | leaf maximum { |
| type uint32 { | | type uint32 { |
| range "0..4294967295" { | | range "0..4294967295" { |
| description | | description |
| "Number of MAC addresses after which MAC limit action is taken"; | | "Number of MAC addresses after which MAC limit action is taken"; |
| } | | } |
| } | | } |
| description | | description |
| "Number of MAC addresses after which MAC limit action is taken"; | | "Number of MAC addresses after which MAC limit action is taken"; |
| } | | } |
| container action { | | container action { |
| description | | description |
| "MAC address limit enforcement action"; | | "MAC address limit enforcement action"; |
| container flood { | | container flood { |
| must "not(../no-flood or ../shutdown)"; | | must "not(../no-flood or ../shutdown)"; |
| presence "Indicates a flood node is configured."; | | presence "Indicates a flood node is configured."; |
| description | | description |
| "Stop learning but continue flooding"; | | "Stop learning but continue flooding"; |
| } | | } |
| container no-flood { | | container no-flood { |
| must "not(../flood or ../shutdown)"; | | must "not(../flood or ../shutdown)"; |
| presence "Indicates a no-flood node is configured."; | | presence "Indicates a no-flood node is configured."; |
| description | | description |
| "Stop learning and stop flooding"; | | "Stop learning and stop flooding"; |
| } | | } |
| container shutdown { | | container shutdown { |
| must "not(../flood or ../no-flood)"; | | must "not(../flood or ../no-flood)"; |
| presence "Indicates a shutdown node is configured."; | | presence "Indicates a shutdown node is configured."; |
| description | | description |
| "Stop forwarding"; | | "Stop forwarding"; |
| } | | } |
| } | | } |
| container notification { | | container notification { |
| description | | description |
| "MAC address limit notification action"; | | "MAC address limit notification action"; |
| container trap { | | container trap { |
| must "not(../both or ../none)"; | | must "not(../both or ../none)"; |
| presence "Indicates a trap node is configured."; | | presence "Indicates a trap node is configured."; |
| description | | description |
| "Generate SNMP trap"; | | "Generate SNMP trap"; |
| } | | } |
| container both { | | container both { |
| must "not(../trap or ../none)"; | | must "not(../trap or ../none)"; |
| presence "Indicates a both node is configured."; | | presence "Indicates a both node is configured."; |
| description | | description |
| "Generate syslog message and SNMP trap"; | | "Generate syslog message and SNMP trap"; |
| } | | } |
| container none { | | container none { |
| must "not(../trap or ../both)"; | | must "not(../trap or ../both)"; |
| presence "Indicates a none node is configured."; | | presence "Indicates a none node is configured."; |
| description | | description |
| "No notification"; | | "No notification"; |
| } | | } |
| } | | } |
| } | | } |
| container port-down { | | container port-down { |
| description | | description |
| "Configure action when port goes down"; | | "Configure action when port goes down"; |
| container flush { | | container flush { |
| description | | description |
| "Configure MAC flush when port goes down"; | | "Configure MAC flush when port goes down"; |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Disable MAC flush when port goes down"; | | "Disable MAC flush when port goes down"; |
| } | | } |
| } | | } |
| } | | } |
| container secure { | | container secure { |
| presence "Indicates a secure node is configured."; | | presence "Indicates a secure node is configured."; |
| description | | description |
| "MAC Secure configuration commands"; | | "MAC Secure configuration commands"; |
| container logging { | | container logging { |
| presence "Indicates a logging node is configured."; | | presence "Indicates a logging node is configured."; |
| description | | description |
| "Enable Logging"; | | "Enable Logging"; |
| } | | } |
| container threshold { | | container threshold { |
| presence "Indicates a threshold node is configured."; | | presence "Indicates a threshold node is configured."; |
| description | | description |
| "Threshold based mac secure"; | | "Threshold based mac secure"; |
| } | | } |
| container action { | | container action { |
| description | | description |
| "MAC secure enforcement action"; | | "MAC secure enforcement action"; |
| container none { | | container none { |
| must "not(../shutdown)"; | | must "not(../shutdown)"; |
| presence "Indicates a none node is configured."; | | presence "Indicates a none node is configured."; |
| description | | description |
| "Forward the violating packet and allow the MAC to be relearned"; | | "Forward the violating packet and allow the MAC to be relearned"; |
| } | | } |
| container shutdown { | | container shutdown { |
| must "not(../none)"; | | must "not(../none)"; |
| presence "Indicates a shutdown node is configured."; | | presence "Indicates a shutdown node is configured."; |
| description | | description |
| "Shutdown the violating bridge port"; | | "Shutdown the violating bridge port"; |
| } | | } |
| } | | } |
| leaf shutdown-recovery-timeout { | | leaf shutdown-recovery-timeout { |
| type uint32 { | | type uint32 { |
| range "10..3600" { | | range "10..3600" { |
| description | | description |
| "Recovery timer in seconds"; | | "Recovery timer in seconds"; |
| } | | } |
| } | | } |
| description | | description |
| "Recovery-timer to automatically revert shutdown action"; | | "Recovery-timer to automatically revert shutdown action"; |
| } | | } |
| } | | } |
| } | | } |
| container access-evis { | | container access-evis { |
| description | | description |
| "Specify the virtual access EVI"; | | "Specify the virtual access EVI"; |
| list access-evi { | | list access-evi { |
| key "access-evi-id"; | | key "access-evi-id"; |
| description | | description |
| "Specify the virtual access EVI"; | | "Specify the virtual access EVI"; |
| leaf access-evi-id { | | leaf access-evi-id { |
| type uint32 { | | type uint32 { |
| range "1..65534" { | | range "1..65534" { |
| description | | description |
| "Access EVPN Instance VPN ID value"; | | "Access EVPN Instance VPN ID value"; |
| } | | } |
| } | | } |
| description | | description |
| "Specify the virtual access EVI"; | | "Specify the virtual access EVI"; |
| } | | } |
| } | | } |
| } | | } |
| container neighbors { | | container neighbors { |
| description | | description |
| "Specify the peer to cross connect"; | | "Specify the peer to cross connect"; |
| list neighbor { | | list neighbor { |
| key "address pw-id"; | | key "address pw-id"; |
| description | | description |
| "Specify the peer to cross connect"; | | "Specify the peer to cross connect"; |
| leaf address { | | leaf address { |
| type inet:ipv4-address-no-zone; | | type inet:ipv4-address-no-zone; |
| description | | description |
| "IPv4 address of the peer"; | | "IPv4 address of the peer"; |
| } | | } |
| leaf pw-id { | | leaf pw-id { |
| type uint32 { | | type uint32 { |
| range "1..4294967295" { | | range "1..4294967295" { |
| description | | description |
| "Pseudowire ID"; | | "Pseudowire ID"; |
| } | | } |
| } | | } |
| description | | description |
| "Specify the pseudowire id"; | | "Specify the pseudowire id"; |
| } | | } |
| container flooding { | | container flooding { |
| if-feature "l2vpn_is_cli_supported"; | | if-feature "l2vpn_is_cli_supported"; |
| presence "Indicates a flooding node is configured."; | | presence "Indicates a flooding node is configured."; |
| description | | description |
| "Traffic flooding"; | | "Traffic flooding"; |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Disable flooding"; | | "Disable flooding"; |
| } | | } |
| n | | n | container unknown-unicast { |
| | | presence "Indicates a unknown-unicast node is configured."; |
| | | description |
| | | "Traffic flooding unknown unicast"; |
| | | container disable { |
| | | presence "Indicates a disable node is configured."; |
| | | description |
| | | "Disable Unknow Unicast flooding"; |
| | | } |
| | | } |
| } | | } |
| container static-mac-addresses { | | container static-mac-addresses { |
| description | | description |
| "Static MAC address"; | | "Static MAC address"; |
| list static-mac-address { | | list static-mac-address { |
| key "mac-address"; | | key "mac-address"; |
| description | | description |
| "Static MAC address"; | | "Static MAC address"; |
| leaf mac-address { | | leaf mac-address { |
| type yang:mac-address; | | type yang:mac-address; |
| description | | description |
| "Static MAC address"; | | "Static MAC address"; |
| } | | } |
| } | | } |
| } | | } |
| container mpls { | | container mpls { |
| description | | description |
| "MPLS L2VPN PW command"; | | "MPLS L2VPN PW command"; |
| container static { | | container static { |
| description | | description |
| "MPLS L2VPN static settings"; | | "MPLS L2VPN static settings"; |
| container label { | | container label { |
| description | | description |
| "MPLS L2VPN static labels"; | | "MPLS L2VPN static labels"; |
| leaf local { | | leaf local { |
| type uint32 { | | type uint32 { |
| range "16..1048575" { | | range "16..1048575" { |
| description | | description |
| "Local pseudowire label"; | | "Local pseudowire label"; |
| } | | } |
| } | | } |
| must "../remote"; | | must "../remote"; |
| description | | description |
| "Local pseudowire label"; | | "Local pseudowire label"; |
| } | | } |
| leaf remote { | | leaf remote { |
| type uint32 { | | type uint32 { |
| range "16..1048575" { | | range "16..1048575" { |
| description | | description |
| "Remote pseudowire label"; | | "Remote pseudowire label"; |
| } | | } |
| } | | } |
| must "../local"; | | must "../local"; |
| description | | description |
| "Remote pseudowire label"; | | "Remote pseudowire label"; |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| leaf pw-class { | | leaf pw-class { |
| type xr:Cisco-ios-xr-string { | | type xr:Cisco-ios-xr-string { |
| length "1..32" { | | length "1..32" { |
| description | | description |
| "Pseudowire-class name"; | | "Pseudowire-class name"; |
| } | | } |
| } | | } |
| description | | description |
| "PW class template name to use for this pseudowire"; | | "PW class template name to use for this pseudowire"; |
| } | | } |
| container split-horizon { | | container split-horizon { |
| description | | description |
| "Configure split horizon group"; | | "Configure split horizon group"; |
| container group { | | container group { |
| presence "Indicates a group node is configured."; | | presence "Indicates a group node is configured."; |
| description | | description |
| "Configure split horizon group"; | | "Configure split horizon group"; |
| } | | } |
| } | | } |
| container storm-control { | | container storm-control { |
| description | | description |
| "Storm Control"; | | "Storm Control"; |
| container broadcast { | | container broadcast { |
| description | | description |
| "Broadcast Storm Control"; | | "Broadcast Storm Control"; |
| leaf pps { | | leaf pps { |
| type uint32 { | | type uint32 { |
| range "1..160000" { | | range "1..160000" { |
| description | | description |
| "storm control pps value"; | | "storm control pps value"; |
| } | | } |
| } | | } |
| description | | description |
| "Set the storm control pps"; | | "Set the storm control pps"; |
| } | | } |
| leaf kbps { | | leaf kbps { |
| type uint32 { | | type uint32 { |
| range "64..1280000" { | | range "64..1280000" { |
| description | | description |
| "storm control kbps value"; | | "storm control kbps value"; |
| } | | } |
| } | | } |
| description | | description |
| "Set the storm control kbps"; | | "Set the storm control kbps"; |
| } | | } |
| } | | } |
| container multicast { | | container multicast { |
| description | | description |
| "Multicast Storm Control"; | | "Multicast Storm Control"; |
| leaf pps { | | leaf pps { |
| type uint32 { | | type uint32 { |
| range "1..160000" { | | range "1..160000" { |
| description | | description |
| "storm control pps value"; | | "storm control pps value"; |
| } | | } |
| } | | } |
| description | | description |
| "Set the storm control pps"; | | "Set the storm control pps"; |
| } | | } |
| leaf kbps { | | leaf kbps { |
| type uint32 { | | type uint32 { |
| range "64..1280000" { | | range "64..1280000" { |
| description | | description |
| "storm control kbps value"; | | "storm control kbps value"; |
| } | | } |
| } | | } |
| description | | description |
| "Set the storm control kbps"; | | "Set the storm control kbps"; |
| } | | } |
| } | | } |
| container unknown-unicast { | | container unknown-unicast { |
| description | | description |
| "Unknown-unicast Storm Control"; | | "Unknown-unicast Storm Control"; |
| leaf pps { | | leaf pps { |
| type uint32 { | | type uint32 { |
| range "1..160000" { | | range "1..160000" { |
| description | | description |
| "storm control pps value"; | | "storm control pps value"; |
| } | | } |
| } | | } |
| description | | description |
| "Set the storm control pps"; | | "Set the storm control pps"; |
| } | | } |
| leaf kbps { | | leaf kbps { |
| type uint32 { | | type uint32 { |
| range "64..1280000" { | | range "64..1280000" { |
| description | | description |
| "storm control kbps value"; | | "storm control kbps value"; |
| } | | } |
| } | | } |
| description | | description |
| "Set the storm control kbps"; | | "Set the storm control kbps"; |
| } | | } |
| } | | } |
| } | | } |
| container mac { | | container mac { |
| description | | description |
| "MAC configuration commands"; | | "MAC configuration commands"; |
| container aging { | | container aging { |
| description | | description |
| "MAC-Aging configuration commands"; | | "MAC-Aging configuration commands"; |
| leaf time { | | leaf time { |
| type uint32 { | | type uint32 { |
| range "300..30000" { | | range "300..30000" { |
| description | | description |
| "MAC address aging time in seconds"; | | "MAC address aging time in seconds"; |
| } | | } |
| } | | } |
| description | | description |
| "Mac aging"; | | "Mac aging"; |
| } | | } |
| container type { | | container type { |
| description | | description |
| "MAC address aging type"; | | "MAC address aging type"; |
| container absolute { | | container absolute { |
| must "not(../inactivity)"; | | must "not(../inactivity)"; |
| presence "Indicates a absolute node is configured."; | | presence "Indicates a absolute node is configured."; |
| description | | description |
| "Absolute aging type"; | | "Absolute aging type"; |
| } | | } |
| container inactivity { | | container inactivity { |
| must "not(../absolute)"; | | must "not(../absolute)"; |
| presence "Indicates a inactivity node is configured."; | | presence "Indicates a inactivity node is configured."; |
| description | | description |
| "Inactivity aging type"; | | "Inactivity aging type"; |
| } | | } |
| } | | } |
| } | | } |
| container learning { | | container learning { |
| presence "Indicates a learning node is configured."; | | presence "Indicates a learning node is configured."; |
| description | | description |
| "MAC learning"; | | "MAC learning"; |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Disable MAC learning"; | | "Disable MAC learning"; |
| } | | } |
| } | | } |
| container limit { | | container limit { |
| description | | description |
| "MAC-Limit configuration commands"; | | "MAC-Limit configuration commands"; |
| leaf maximum { | | leaf maximum { |
| type uint32 { | | type uint32 { |
| range "0..4294967295" { | | range "0..4294967295" { |
| description | | description |
| "Number of MAC addresses after which MAC limit action is taken"; | | "Number of MAC addresses after which MAC limit action is taken"; |
| } | | } |
| } | | } |
| description | | description |
| "Number of MAC addresses after which MAC limit action is taken"; | | "Number of MAC addresses after which MAC limit action is taken"; |
| } | | } |
| container action { | | container action { |
| description | | description |
| "MAC address limit enforcement action"; | | "MAC address limit enforcement action"; |
| container flood { | | container flood { |
| must | | must |
| "not(../no-flood or ../shutdown | | "not(../no-flood or ../shutdown |
| or ../none)"; | | or ../none)"; |
| presence "Indicates a flood node is configured."; | | presence "Indicates a flood node is configured."; |
| description | | description |
| "Stop learning but continue flooding"; | | "Stop learning but continue flooding"; |
| } | | } |
| container no-flood { | | container no-flood { |
| must | | must |
| "not(../flood or ../shutdown | | "not(../flood or ../shutdown |
| or ../none)"; | | or ../none)"; |
| presence "Indicates a no-flood node is configured."; | | presence "Indicates a no-flood node is configured."; |
| description | | description |
| "Stop learning and stop flooding"; | | "Stop learning and stop flooding"; |
| } | | } |
| container shutdown { | | container shutdown { |
| must | | must |
| "not(../flood or ../no-flood | | "not(../flood or ../no-flood |
| or ../none)"; | | or ../none)"; |
| presence "Indicates a shutdown node is configured."; | | presence "Indicates a shutdown node is configured."; |
| description | | description |
| "Stop forwarding"; | | "Stop forwarding"; |
| } | | } |
| container none { | | container none { |
| must | | must |
| "not(../flood or ../no-flood | | "not(../flood or ../no-flood |
| or ../shutdown)"; | | or ../shutdown)"; |
| presence "Indicates a none node is configured."; | | presence "Indicates a none node is configured."; |
| description | | description |
| "No action"; | | "No action"; |
| } | | } |
| } | | } |
| container notification { | | container notification { |
| description | | description |
| "MAC address limit notification action"; | | "MAC address limit notification action"; |
| container trap { | | container trap { |
| must | | must |
| "not(../both or ../none | | "not(../both or ../none |
| or ../syslog)"; | | or ../syslog)"; |
| presence "Indicates a trap node is configured."; | | presence "Indicates a trap node is configured."; |
| description | | description |
| "Generate SNMP trap"; | | "Generate SNMP trap"; |
| } | | } |
| container both { | | container both { |
| must | | must |
| "not(../trap or ../none | | "not(../trap or ../none |
| or ../syslog)"; | | or ../syslog)"; |
| presence "Indicates a both node is configured."; | | presence "Indicates a both node is configured."; |
| description | | description |
| "Generate syslog message and SNMP trap"; | | "Generate syslog message and SNMP trap"; |
| } | | } |
| container none { | | container none { |
| must | | must |
| "not(../trap or ../both | | "not(../trap or ../both |
| or ../syslog)"; | | or ../syslog)"; |
| presence "Indicates a none node is configured."; | | presence "Indicates a none node is configured."; |
| description | | description |
| "No notification"; | | "No notification"; |
| } | | } |
| container syslog { | | container syslog { |
| must | | must |
| "not(../trap or ../both | | "not(../trap or ../both |
| or ../none)"; | | or ../none)"; |
| presence "Indicates a syslog node is configured."; | | presence "Indicates a syslog node is configured."; |
| description | | description |
| "Generate syslog message"; | | "Generate syslog message"; |
| } | | } |
| } | | } |
| } | | } |
| container port-down { | | container port-down { |
| description | | description |
| "Configure action when port goes down"; | | "Configure action when port goes down"; |
| container flush { | | container flush { |
| presence "Indicates a flush node is configured."; | | presence "Indicates a flush node is configured."; |
| description | | description |
| "Configure MAC flush when port goes down"; | | "Configure MAC flush when port goes down"; |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Disable MAC flush when port goes down"; | | "Disable MAC flush when port goes down"; |
| } | | } |
| } | | } |
| } | | } |
| container secure { | | container secure { |
| presence "Indicates a secure node is configured."; | | presence "Indicates a secure node is configured."; |
| description | | description |
| "MAC Secure configuration commands"; | | "MAC Secure configuration commands"; |
| container logging { | | container logging { |
| presence "Indicates a logging node is configured."; | | presence "Indicates a logging node is configured."; |
| description | | description |
| "Logging"; | | "Logging"; |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "disable logging"; | | "disable logging"; |
| } | | } |
| } | | } |
| container action { | | container action { |
| description | | description |
| "MAC secure enforcement action"; | | "MAC secure enforcement action"; |
| container none { | | container none { |
| must "not(../shutdown or ../restrict)"; | | must "not(../shutdown or ../restrict)"; |
| presence "Indicates a none node is configured."; | | presence "Indicates a none node is configured."; |
| description | | description |
| "Forward the violating packet and allow the MAC to be relearned"; | | "Forward the violating packet and allow the MAC to be relearned"; |
| } | | } |
| container shutdown { | | container shutdown { |
| must "not(../none or ../restrict)"; | | must "not(../none or ../restrict)"; |
| presence "Indicates a shutdown node is configured."; | | presence "Indicates a shutdown node is configured."; |
| description | | description |
| "Shutdown the violating bridge port"; | | "Shutdown the violating bridge port"; |
| } | | } |
| container restrict { | | container restrict { |
| must "not(../none or ../shutdown)"; | | must "not(../none or ../shutdown)"; |
| presence "Indicates a restrict node is configured."; | | presence "Indicates a restrict node is configured."; |
| description | | description |
| "Drop the violating packet and not allow the MAC to be relearned"; | | "Drop the violating packet and not allow the MAC to be relearned"; |
| } | | } |
| } | | } |
| container shutdown-recovery-timeout { | | container shutdown-recovery-timeout { |
| description | | description |
| "Recovery-timer to automatically revert shutdown action"; | | "Recovery-timer to automatically revert shutdown action"; |
| container disable { | | container disable { |
| must "not(../recovery-timer-in-second)"; | | must "not(../recovery-timer-in-second)"; |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Disable shutdown recovery timer"; | | "Disable shutdown recovery timer"; |
| } | | } |
| leaf recovery-timer-in-second { | | leaf recovery-timer-in-second { |
| type uint32 { | | type uint32 { |
| range "10..3600" { | | range "10..3600" { |
| description | | description |
| "Recovery timer in second"; | | "Recovery timer in second"; |
| } | | } |
| } | | } |
| must "not(../disable)"; | | must "not(../disable)"; |
| description | | description |
| "Recovery timer in second"; | | "Recovery timer in second"; |
| } | | } |
| } | | } |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Disable MAC Secure"; | | "Disable MAC Secure"; |
| } | | } |
| } | | } |
| } | | } |
| container dhcp { | | container dhcp { |
| presence "Indicates a dhcp node is configured."; | | presence "Indicates a dhcp node is configured."; |
| description | | description |
| "DHCP protocol"; | | "DHCP protocol"; |
| container ipv4 { | | container ipv4 { |
| description | | description |
| "IP Version 4"; | | "IP Version 4"; |
| container snoop { | | container snoop { |
| presence "Indicates a snoop node is configured."; | | presence "Indicates a snoop node is configured."; |
| description | | description |
| "Set the snooping profile"; | | "Set the snooping profile"; |
| leaf profile { | | leaf profile { |
| type xr:Cisco-ios-xr-string { | | type xr:Cisco-ios-xr-string { |
| length "1..32" { | | length "1..32" { |
| description | | description |
| "DHCPv4 Snooping profile name"; | | "DHCPv4 Snooping profile name"; |
| } | | } |
| } | | } |
| description | | description |
| "Attach a DHCP profile"; | | "Attach a DHCP profile"; |
| } | | } |
| } | | } |
| container none { | | container none { |
| presence "Indicates a none node is configured."; | | presence "Indicates a none node is configured."; |
| description | | description |
| "Disable DHCP snooping"; | | "Disable DHCP snooping"; |
| } | | } |
| } | | } |
| } | | } |
| container igmp { | | container igmp { |
| description | | description |
| "IGMP protocol"; | | "IGMP protocol"; |
| container snooping { | | container snooping { |
| description | | description |
| "Set the snooping profile"; | | "Set the snooping profile"; |
| leaf profile { | | leaf profile { |
| type xr:Cisco-ios-xr-string { | | type xr:Cisco-ios-xr-string { |
| length "1..32" { | | length "1..32" { |
| description | | description |
| "IGMP Snooping profile name"; | | "IGMP Snooping profile name"; |
| } | | } |
| } | | } |
| description | | description |
| "Attach an IGMP profile"; | | "Attach an IGMP profile"; |
| } | | } |
| } | | } |
| } | | } |
| container mld { | | container mld { |
| description | | description |
| "MLD protocol"; | | "MLD protocol"; |
| container snooping { | | container snooping { |
| description | | description |
| "Set the snooping profile"; | | "Set the snooping profile"; |
| leaf profile { | | leaf profile { |
| type xr:Cisco-ios-xr-string { | | type xr:Cisco-ios-xr-string { |
| length "1..32" { | | length "1..32" { |
| description | | description |
| "MLD Snooping profile name"; | | "MLD Snooping profile name"; |
| } | | } |
| } | | } |
| description | | description |
| "Attach a MLD profile"; | | "Attach a MLD profile"; |
| } | | } |
| } | | } |
| } | | } |
| container backup { | | container backup { |
| description | | description |
| "Backup pseudowire for the access pseudowire"; | | "Backup pseudowire for the access pseudowire"; |
| container neighbors { | | container neighbors { |
| description | | description |
| "Specify the peer to cross connect"; | | "Specify the peer to cross connect"; |
| list neighbor { | | list neighbor { |
| key "address pw-id"; | | key "address pw-id"; |
| description | | description |
| "Specify the peer to cross connect"; | | "Specify the peer to cross connect"; |
| leaf address { | | leaf address { |
| type inet:ipv4-address-no-zone; | | type inet:ipv4-address-no-zone; |
| description | | description |
| "IPv4 address of the peer"; | | "IPv4 address of the peer"; |
| } | | } |
| leaf pw-id { | | leaf pw-id { |
| type uint32 { | | type uint32 { |
| range "1..4294967295" { | | range "1..4294967295" { |
| description | | description |
| "Pseudowire ID"; | | "Pseudowire ID"; |
| } | | } |
| } | | } |
| description | | description |
| "Specify the pseudowire id"; | | "Specify the pseudowire id"; |
| } | | } |
| leaf pw-class { | | leaf pw-class { |
| type xr:Cisco-ios-xr-string { | | type xr:Cisco-ios-xr-string { |
| length "1..32" { | | length "1..32" { |
| description | | description |
| "Pseudowire-class name"; | | "Pseudowire-class name"; |
| } | | } |
| } | | } |
| description | | description |
| "PW class template name to use for this pseudowire"; | | "PW class template name to use for this pseudowire"; |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| container evpn { | | container evpn { |
| description | | description |
| "Specify the Ethernet VPN"; | | "Specify the Ethernet VPN"; |
| list evi { | | list evi { |
| key "vpn-id target"; | | key "vpn-id target"; |
| description | | description |
| "Ethernet VPN Identifier"; | | "Ethernet VPN Identifier"; |
| leaf vpn-id { | | leaf vpn-id { |
| type uint32 { | | type uint32 { |
| range "1..65534" { | | range "1..65534" { |
| description | | description |
| "Ethernet VPN ID to set"; | | "Ethernet VPN ID to set"; |
| } | | } |
| } | | } |
| description | | description |
| "Configure EVPN Instance VPN ID"; | | "Configure EVPN Instance VPN ID"; |
| } | | } |
| leaf target { | | leaf target { |
| type uint32 { | | type uint32 { |
| range "1..16777215" { | | range "1..16777215" { |
| description | | description |
| "Remote ac-id"; | | "Remote ac-id"; |
| } | | } |
| } | | } |
| description | | description |
| "Specify remote attachment circuit identifier"; | | "Specify remote attachment circuit identifier"; |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| leaf description { | | leaf description { |
| if-feature "l2vpn_is_cli_supported"; | | if-feature "l2vpn_is_cli_supported"; |
| type string { | | type string { |
| length "1..64" { | | length "1..64" { |
| description | | description |
| "Bridge-Domain description string"; | | "Bridge-Domain description string"; |
| } | | } |
| } | | } |
| description | | description |
| "Description for Bridge-Domain"; | | "Description for Bridge-Domain"; |
| } | | } |
| container efp-visibility { | | container efp-visibility { |
| presence "Indicates a efp-visibility node is configured."; | | presence "Indicates a efp-visibility node is configured."; |
| description | | description |
| "Enable multicast for multiple VLANs in the bridge of a BVI"; | | "Enable multicast for multiple VLANs in the bridge of a BVI"; |
| } | | } |
| container etree { | | container etree { |
| presence "Indicates a etree node is configured."; | | presence "Indicates a etree node is configured."; |
| description | | description |
| "Configure Bridge Domain EVPN E-Tree"; | | "Configure Bridge Domain EVPN E-Tree"; |
| container leaf { | | container leaf { |
| presence "Indicates a leaf node is configured."; | | presence "Indicates a leaf node is configured."; |
| description | | description |
| "Designate Bridge Domain as EVPN E-Tree Leaf"; | | "Designate Bridge Domain as EVPN E-Tree Leaf"; |
| } | | } |
| } | | } |
| container member { | | container member { |
| description | | description |
| "Bridge domain member"; | | "Bridge domain member"; |
| container vnis { | | container vnis { |
| description | | description |
| "Assign VxLAN Network Identifier to bridge domain"; | | "Assign VxLAN Network Identifier to bridge domain"; |
| list vni { | | list vni { |
| key "vni-id"; | | key "vni-id"; |
| description | | description |
| "Assign VxLAN Network Identifier to bridge domain"; | | "Assign VxLAN Network Identifier to bridge domain"; |
| leaf vni-id { | | leaf vni-id { |
| type uint32 { | | type uint32 { |
| range "1..16777215" { | | range "1..16777215" { |
| description | | description |
| "Specify VxLAN Network Identifier value"; | | "Specify VxLAN Network Identifier value"; |
| } | | } |
| } | | } |
| description | | description |
| "Assign VxLAN Network Identifier to bridge domain"; | | "Assign VxLAN Network Identifier to bridge domain"; |
| } | | } |
| container static-mac-addresses { | | container static-mac-addresses { |
| description | | description |
| "Static MAC address"; | | "Static MAC address"; |
| list static-mac-address { | | list static-mac-address { |
| key "mac-address"; | | key "mac-address"; |
| description | | description |
| "Static MAC address"; | | "Static MAC address"; |
| leaf mac-address { | | leaf mac-address { |
| type yang:mac-address; | | type yang:mac-address; |
| description | | description |
| "Static MAC address"; | | "Static MAC address"; |
| } | | } |
| leaf next-hop { | | leaf next-hop { |
| type inet:ipv4-address-no-zone; | | type inet:ipv4-address-no-zone; |
| description | | description |
| "Specify the next hop IP address"; | | "Specify the next hop IP address"; |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| container pbb { | | container pbb { |
| description | | description |
| "Configure Provider Backbone Bridge"; | | "Configure Provider Backbone Bridge"; |
| container core { | | container core { |
| presence "Indicates a core node is configured."; | | presence "Indicates a core node is configured."; |
| description | | description |
| "PBB core bridge domain"; | | "PBB core bridge domain"; |
| container rewrite { | | container rewrite { |
| description | | description |
| "Set the tag rewriting policy"; | | "Set the tag rewriting policy"; |
| container ingress { | | container ingress { |
| description | | description |
| "Set the tag rewriting policy"; | | "Set the tag rewriting policy"; |
| container tag { | | container tag { |
| description | | description |
| "Set the tag rewriting policy"; | | "Set the tag rewriting policy"; |
| container push { | | container push { |
| description | | description |
| "Push one or more tags"; | | "Push one or more tags"; |
| leaf dot1ad { | | leaf dot1ad { |
| type uint32 { | | type uint32 { |
| range "1..4094" { | | range "1..4094" { |
| description | | description |
| "VLAN ID to push"; | | "VLAN ID to push"; |
| } | | } |
| } | | } |
| description | | description |
| "Push a Dot1ad tag"; | | "Push a Dot1ad tag"; |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| container mac { | | container mac { |
| description | | description |
| "MAC configuration commands"; | | "MAC configuration commands"; |
| container aging { | | container aging { |
| description | | description |
| "MAC-Aging configuration commands"; | | "MAC-Aging configuration commands"; |
| leaf time { | | leaf time { |
| type uint32 { | | type uint32 { |
| range "300..30000" { | | range "300..30000" { |
| description | | description |
| "MAC address aging time in seconds"; | | "MAC address aging time in seconds"; |
| } | | } |
| } | | } |
| description | | description |
| "Mac aging"; | | "Mac aging"; |
| } | | } |
| container type { | | container type { |
| description | | description |
| "MAC address aging type"; | | "MAC address aging type"; |
| container absolute { | | container absolute { |
| must "not(../inactivity)"; | | must "not(../inactivity)"; |
| presence "Indicates a absolute node is configured."; | | presence "Indicates a absolute node is configured."; |
| description | | description |
| "Absolute aging type"; | | "Absolute aging type"; |
| } | | } |
| container inactivity { | | container inactivity { |
| must "not(../absolute)"; | | must "not(../absolute)"; |
| presence "Indicates a inactivity node is configured."; | | presence "Indicates a inactivity node is configured."; |
| description | | description |
| "Inactivity aging type"; | | "Inactivity aging type"; |
| } | | } |
| } | | } |
| } | | } |
| container learning { | | container learning { |
| presence "Indicates a learning node is configured."; | | presence "Indicates a learning node is configured."; |
| description | | description |
| "MAC learning"; | | "MAC learning"; |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Disable MAC learning"; | | "Disable MAC learning"; |
| } | | } |
| } | | } |
| n | | n | } |
| | | container mmrp-flood-optimization { |
| | | presence "Indicates a mmrp-flood-optimization node is configured."; |
| | | description |
| | | "Enable flood optimization for MMRP"; |
| } | | } |
| container evis { | | container evis { |
| description | | description |
| "Ethernet VPN identifier"; | | "Ethernet VPN identifier"; |
| list evi { | | list evi { |
| key "vpn-id"; | | key "vpn-id"; |
| description | | description |
| "Ethernet VPN identifier"; | | "Ethernet VPN identifier"; |
| leaf vpn-id { | | leaf vpn-id { |
| type uint32 { | | type uint32 { |
| range "1..65534" { | | range "1..65534" { |
| description | | description |
| "Ethernet VPN ID to set"; | | "Ethernet VPN ID to set"; |
| } | | } |
| } | | } |
| description | | description |
| "Ethernet VPN identifier"; | | "Ethernet VPN identifier"; |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| container edge { | | container edge { |
| description | | description |
| "PBB edge bridge domain"; | | "PBB edge bridge domain"; |
| list i-sid { | | list i-sid { |
| key "instance-id core-bridge-name"; | | key "instance-id core-bridge-name"; |
| description | | description |
| "Configure Service Instance Identifier"; | | "Configure Service Instance Identifier"; |
| leaf instance-id { | | leaf instance-id { |
| type uint32 { | | type uint32 { |
| range "256..16777214" { | | range "256..16777214" { |
| description | | description |
| "Service Instance ID"; | | "Service Instance ID"; |
| } | | } |
| } | | } |
| description | | description |
| "Configure Service Instance Identifier"; | | "Configure Service Instance Identifier"; |
| } | | } |
| leaf core-bridge-name { | | leaf core-bridge-name { |
| type xr:Cisco-ios-xr-string { | | type xr:Cisco-ios-xr-string { |
| length "1..27" { | | length "1..27" { |
| description | | description |
| "Name of the PBB core bridge domain"; | | "Name of the PBB core bridge domain"; |
| } | | } |
| } | | } |
| description | | description |
| "Specifiy PBB core bridge domain to associate with"; | | "Specifiy PBB core bridge domain to associate with"; |
| } | | } |
| container static-mac-addresses { | | container static-mac-addresses { |
| description | | description |
| "Static customer MAC address"; | | "Static customer MAC address"; |
| list static-mac-address { | | list static-mac-address { |
| key "mac-address"; | | key "mac-address"; |
| description | | description |
| "Static customer MAC address"; | | "Static customer MAC address"; |
| leaf mac-address { | | leaf mac-address { |
| type yang:mac-address; | | type yang:mac-address; |
| description | | description |
| "Static customer MAC address"; | | "Static customer MAC address"; |
| } | | } |
| leaf bmac { | | leaf bmac { |
| type yang:mac-address; | | type yang:mac-address; |
| mandatory true; | | mandatory true; |
| description | | description |
| "Static backbone MAC address to map with"; | | "Static backbone MAC address to map with"; |
| } | | } |
| } | | } |
| } | | } |
| leaf unknown-unicast-bmac { | | leaf unknown-unicast-bmac { |
| type yang:mac-address; | | type yang:mac-address; |
| description | | description |
| "Unknown Unicast backbone MAC address"; | | "Unknown Unicast backbone MAC address"; |
| } | | } |
| container split-horizon { | | container split-horizon { |
| description | | description |
| "Configure split horizon option"; | | "Configure split horizon option"; |
| container group { | | container group { |
| description | | description |
| "Configure split horizon group option"; | | "Configure split horizon group option"; |
| container vfi { | | container vfi { |
| description | | description |
| "Configure split horizon group vfi option"; | | "Configure split horizon group vfi option"; |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Configure split horizon group vfi disable"; | | "Configure split horizon group vfi disable"; |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| container mac { | | container mac { |
| description | | description |
| "MAC configuration commands"; | | "MAC configuration commands"; |
| container aging { | | container aging { |
| description | | description |
| "MAC-Aging configuration commands"; | | "MAC-Aging configuration commands"; |
| leaf time { | | leaf time { |
| type uint32 { | | type uint32 { |
| range "300..30000" { | | range "300..30000" { |
| description | | description |
| "MAC address aging time in seconds"; | | "MAC address aging time in seconds"; |
| } | | } |
| } | | } |
| description | | description |
| "Mac aging"; | | "Mac aging"; |
| } | | } |
| container type { | | container type { |
| description | | description |
| "MAC address aging type"; | | "MAC address aging type"; |
| container absolute { | | container absolute { |
| must "not(../inactivity)"; | | must "not(../inactivity)"; |
| presence "Indicates a absolute node is configured."; | | presence "Indicates a absolute node is configured."; |
| description | | description |
| "Absolute aging type"; | | "Absolute aging type"; |
| } | | } |
| container inactivity { | | container inactivity { |
| must "not(../absolute)"; | | must "not(../absolute)"; |
| presence "Indicates a inactivity node is configured."; | | presence "Indicates a inactivity node is configured."; |
| description | | description |
| "Inactivity aging type"; | | "Inactivity aging type"; |
| } | | } |
| } | | } |
| } | | } |
| container learning { | | container learning { |
| presence "Indicates a learning node is configured."; | | presence "Indicates a learning node is configured."; |
| description | | description |
| "MAC learning"; | | "MAC learning"; |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Disable MAC learning"; | | "Disable MAC learning"; |
| } | | } |
| } | | } |
| container limit { | | container limit { |
| description | | description |
| "MAC-Limit configuration commands"; | | "MAC-Limit configuration commands"; |
| leaf maximum { | | leaf maximum { |
| type uint32 { | | type uint32 { |
| range "0..4294967295" { | | range "0..4294967295" { |
| description | | description |
| "Number of MAC addresses after which MAC limit action is taken"; | | "Number of MAC addresses after which MAC limit action is taken"; |
| } | | } |
| } | | } |
| description | | description |
| "Number of MAC addresses after which MAC limit action is taken"; | | "Number of MAC addresses after which MAC limit action is taken"; |
| } | | } |
| container action { | | container action { |
| description | | description |
| "MAC address limit enforcement action"; | | "MAC address limit enforcement action"; |
| container flood { | | container flood { |
| must | | must |
| "not(../no-flood or ../shutdown | | "not(../no-flood or ../shutdown |
| or ../none)"; | | or ../none)"; |
| presence "Indicates a flood node is configured."; | | presence "Indicates a flood node is configured."; |
| description | | description |
| "Stop learning but continue flooding"; | | "Stop learning but continue flooding"; |
| } | | } |
| container no-flood { | | container no-flood { |
| must | | must |
| "not(../flood or ../shutdown | | "not(../flood or ../shutdown |
| or ../none)"; | | or ../none)"; |
| presence "Indicates a no-flood node is configured."; | | presence "Indicates a no-flood node is configured."; |
| description | | description |
| "Stop learning and stop flooding"; | | "Stop learning and stop flooding"; |
| } | | } |
| container shutdown { | | container shutdown { |
| must | | must |
| "not(../flood or ../no-flood | | "not(../flood or ../no-flood |
| or ../none)"; | | or ../none)"; |
| presence "Indicates a shutdown node is configured."; | | presence "Indicates a shutdown node is configured."; |
| description | | description |
| "Stop forwarding"; | | "Stop forwarding"; |
| } | | } |
| container none { | | container none { |
| must | | must |
| "not(../flood or ../no-flood | | "not(../flood or ../no-flood |
| or ../shutdown)"; | | or ../shutdown)"; |
| presence "Indicates a none node is configured."; | | presence "Indicates a none node is configured."; |
| description | | description |
| "No action"; | | "No action"; |
| } | | } |
| } | | } |
| container notification { | | container notification { |
| description | | description |
| "MAC address limit notification action"; | | "MAC address limit notification action"; |
| container trap { | | container trap { |
| must | | must |
| "not(../both or ../none | | "not(../both or ../none |
| or ../syslog)"; | | or ../syslog)"; |
| presence "Indicates a trap node is configured."; | | presence "Indicates a trap node is configured."; |
| description | | description |
| "Generate SNMP trap"; | | "Generate SNMP trap"; |
| } | | } |
| container both { | | container both { |
| must | | must |
| "not(../trap or ../none | | "not(../trap or ../none |
| or ../syslog)"; | | or ../syslog)"; |
| presence "Indicates a both node is configured."; | | presence "Indicates a both node is configured."; |
| description | | description |
| "Generate syslog message and SNMP trap"; | | "Generate syslog message and SNMP trap"; |
| } | | } |
| container none { | | container none { |
| must | | must |
| "not(../trap or ../both | | "not(../trap or ../both |
| or ../syslog)"; | | or ../syslog)"; |
| presence "Indicates a none node is configured."; | | presence "Indicates a none node is configured."; |
| description | | description |
| "No notification"; | | "No notification"; |
| } | | } |
| container syslog { | | container syslog { |
| must | | must |
| "not(../trap or ../both | | "not(../trap or ../both |
| or ../none)"; | | or ../none)"; |
| presence "Indicates a syslog node is configured."; | | presence "Indicates a syslog node is configured."; |
| description | | description |
| "Generate syslog message"; | | "Generate syslog message"; |
| } | | } |
| } | | } |
| } | | } |
| container secure { | | container secure { |
| presence "Indicates a secure node is configured."; | | presence "Indicates a secure node is configured."; |
| description | | description |
| "MAC Secure configuration commands"; | | "MAC Secure configuration commands"; |
| container logging { | | container logging { |
| presence "Indicates a logging node is configured."; | | presence "Indicates a logging node is configured."; |
| description | | description |
| "Logging"; | | "Logging"; |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "disable logging"; | | "disable logging"; |
| } | | } |
| } | | } |
| container action { | | container action { |
| description | | description |
| "MAC secure enforcement action"; | | "MAC secure enforcement action"; |
| container none { | | container none { |
| must "not(../shutdown or ../restrict)"; | | must "not(../shutdown or ../restrict)"; |
| presence "Indicates a none node is configured."; | | presence "Indicates a none node is configured."; |
| description | | description |
| "Forward the violating packet and allow the MAC to be relearned"; | | "Forward the violating packet and allow the MAC to be relearned"; |
| } | | } |
| container shutdown { | | container shutdown { |
| must "not(../none or ../restrict)"; | | must "not(../none or ../restrict)"; |
| presence "Indicates a shutdown node is configured."; | | presence "Indicates a shutdown node is configured."; |
| description | | description |
| "Shutdown the violating bridge port"; | | "Shutdown the violating bridge port"; |
| } | | } |
| container restrict { | | container restrict { |
| must "not(../none or ../shutdown)"; | | must "not(../none or ../shutdown)"; |
| presence "Indicates a restrict node is configured."; | | presence "Indicates a restrict node is configured."; |
| description | | description |
| "Drop the violating packet and not allow the MAC to be relearned"; | | "Drop the violating packet and not allow the MAC to be relearned"; |
| } | | } |
| } | | } |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Disable MAC Secure"; | | "Disable MAC Secure"; |
| } | | } |
| container accept-shutdown { | | container accept-shutdown { |
| presence "Indicates a accept-shutdown node is configured."; | | presence "Indicates a accept-shutdown node is configured."; |
| description | | description |
| "Accept shutdown action to be taken due to MAC violation"; | | "Accept shutdown action to be taken due to MAC violation"; |
| } | | } |
| } | | } |
| } | | } |
| container dhcp { | | container dhcp { |
| presence "Indicates a dhcp node is configured."; | | presence "Indicates a dhcp node is configured."; |
| description | | description |
| "DHCP protocol"; | | "DHCP protocol"; |
| container ipv4 { | | container ipv4 { |
| description | | description |
| "IP Version 4"; | | "IP Version 4"; |
| container snoop { | | container snoop { |
| presence "Indicates a snoop node is configured."; | | presence "Indicates a snoop node is configured."; |
| description | | description |
| "Set the snooping profile"; | | "Set the snooping profile"; |
| leaf profile { | | leaf profile { |
| type xr:Cisco-ios-xr-string { | | type xr:Cisco-ios-xr-string { |
| length "1..32" { | | length "1..32" { |
| description | | description |
| "DHCPv4 Snooping profile name"; | | "DHCPv4 Snooping profile name"; |
| } | | } |
| } | | } |
| description | | description |
| "Attach a DHCP profile"; | | "Attach a DHCP profile"; |
| } | | } |
| } | | } |
| container none { | | container none { |
| presence "Indicates a none node is configured."; | | presence "Indicates a none node is configured."; |
| description | | description |
| "Disable DHCP snooping"; | | "Disable DHCP snooping"; |
| } | | } |
| } | | } |
| } | | } |
| container igmp { | | container igmp { |
| description | | description |
| "IGMP protocol"; | | "IGMP protocol"; |
| container snooping { | | container snooping { |
| description | | description |
| "Set the snooping profile"; | | "Set the snooping profile"; |
| leaf profile { | | leaf profile { |
| type xr:Cisco-ios-xr-string { | | type xr:Cisco-ios-xr-string { |
| length "1..32" { | | length "1..32" { |
| description | | description |
| "IGMP Snooping profile name"; | | "IGMP Snooping profile name"; |
| } | | } |
| } | | } |
| description | | description |
| "Attach an IGMP profile"; | | "Attach an IGMP profile"; |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| container nv { | | container nv { |
| description | | description |
| "Configure nV Satellite Settings"; | | "Configure nV Satellite Settings"; |
| container satellite { | | container satellite { |
| presence "Indicates a satellite node is configured."; | | presence "Indicates a satellite node is configured."; |
| description | | description |
| "Configure nV Satellite Settings"; | | "Configure nV Satellite Settings"; |
| container offload { | | container offload { |
| description | | description |
| "Hardware offloading"; | | "Hardware offloading"; |
| container ipv4 { | | container ipv4 { |
| description | | description |
| "IPv4"; | | "IPv4"; |
| container multicast { | | container multicast { |
| description | | description |
| "Multicast"; | | "Multicast"; |
| container enable { | | container enable { |
| presence "Indicates a enable node is configured."; | | presence "Indicates a enable node is configured."; |
| description | | description |
| "Enable IPv4 Multicast Offloading"; | | "Enable IPv4 Multicast Offloading"; |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| container pbb { | | container pbb { |
| description | | description |
| "PBB configuration commands"; | | "PBB configuration commands"; |
| leaf backbone-source-mac { | | leaf backbone-source-mac { |
| type yang:mac-address; | | type yang:mac-address; |
| description | | description |
| "Backbone Source MAC"; | | "Backbone Source MAC"; |
| } | | } |
| } | | } |
| container redundancy { | | container redundancy { |
| presence "Indicates a redundancy node is configured."; | | presence "Indicates a redundancy node is configured."; |
| description | | description |
| "Redundancy"; | | "Redundancy"; |
| container iccp { | | container iccp { |
| description | | description |
| "Inter-Chassis Communication Protocol"; | | "Inter-Chassis Communication Protocol"; |
| container groups { | | container groups { |
| description | | description |
| "Group configuration"; | | "Group configuration"; |
| list group { | | list group { |
| key "group-number"; | | key "group-number"; |
| description | | description |
| "Group configuration"; | | "Group configuration"; |
| leaf group-number { | | leaf group-number { |
| type uint32 { | | type uint32 { |
| range "1..4294967295" { | | range "1..4294967295" { |
| description | | description |
| "Enter group number"; | | "Enter group number"; |
| } | | } |
| } | | } |
| description | | description |
| "Group configuration"; | | "Group configuration"; |
| } | | } |
| list interface { | | list interface { |
| key "interface-name"; | | key "interface-name"; |
| description | | description |
| "Interface name"; | | "Interface name"; |
| leaf interface-name { | | leaf interface-name { |
| type xr:Interface-name; | | type xr:Interface-name; |
| description | | description |
| "Interface name"; | | "Interface name"; |
| } | | } |
| container primary { | | container primary { |
| description | | description |
| "Primary VLAN configuration"; | | "Primary VLAN configuration"; |
| leaf vlan { | | leaf vlan { |
| type xr:Cisco-ios-xr-string { | | type xr:Cisco-ios-xr-string { |
| length "1..800" { | | length "1..800" { |
| description | | description |
| "List of VLAN IDs in the form of 1-3,5,8-11"; | | "List of VLAN IDs in the form of 1-3,5,8-11"; |
| } | | } |
| } | | } |
| description | | description |
| "Assign primary VLANs"; | | "Assign primary VLANs"; |
| } | | } |
| } | | } |
| container secondary { | | container secondary { |
| description | | description |
| "Secondary VLAN configuration"; | | "Secondary VLAN configuration"; |
| leaf vlan { | | leaf vlan { |
| type xr:Cisco-ios-xr-string { | | type xr:Cisco-ios-xr-string { |
| length "1..800" { | | length "1..800" { |
| description | | description |
| "List of VLAN IDs in the form of 1-3,5,8-11"; | | "List of VLAN IDs in the form of 1-3,5,8-11"; |
| } | | } |
| } | | } |
| description | | description |
| "Assign secondary VLANs"; | | "Assign secondary VLANs"; |
| } | | } |
| } | | } |
| container mac-flush { | | container mac-flush { |
| description | | description |
| "Enable STP TCN MAC flushing. Default is MVRP"; | | "Enable STP TCN MAC flushing. Default is MVRP"; |
| container stp-tcn { | | container stp-tcn { |
| presence "Indicates a stp-tcn node is configured."; | | presence "Indicates a stp-tcn node is configured."; |
| description | | description |
| "STP topology change notification"; | | "STP topology change notification"; |
| } | | } |
| } | | } |
| container recovery { | | container recovery { |
| description | | description |
| "Failure recovery reversion delay timer. Default is revertive after 180 seconds."; | | "Failure recovery reversion delay timer. Default is revertive after 180 seconds."; |
| leaf delay { | | leaf delay { |
| type uint32 { | | type uint32 { |
| range "30..3600" { | | range "30..3600" { |
| description | | description |
| "input time in seconds"; | | "input time in seconds"; |
| } | | } |
| } | | } |
| description | | description |
| "Specify delay before recovery reversion after failure clears"; | | "Specify delay before recovery reversion after failure clears"; |
| } | | } |
| } | | } |
| } | | } |
| container multi-homing { | | container multi-homing { |
| description | | description |
| "ICCP-based service multi-homing"; | | "ICCP-based service multi-homing"; |
| leaf node-id { | | leaf node-id { |
| type uint32 { | | type uint32 { |
| range "0..254" { | | range "0..254" { |
| description | | description |
| "Node ID"; | | "Node ID"; |
| } | | } |
| } | | } |
| description | | description |
| "Enter multi-homing node ID"; | | "Enter multi-homing node ID"; |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| container ethernet { | | container ethernet { |
| description | | description |
| "Ethernet"; | | "Ethernet"; |
| container ring { | | container ring { |
| description | | description |
| "Ring"; | | "Ring"; |
| list g8032 { | | list g8032 { |
| key "ethernet-ring-name"; | | key "ethernet-ring-name"; |
| description | | description |
| "Specify the g.8032 ethernet ring"; | | "Specify the g.8032 ethernet ring"; |
| leaf ethernet-ring-name { | | leaf ethernet-ring-name { |
| type xr:Cisco-ios-xr-string { | | type xr:Cisco-ios-xr-string { |
| length "1..32" { | | length "1..32" { |
| description | | description |
| "Name of the ethernet ring"; | | "Name of the ethernet ring"; |
| } | | } |
| } | | } |
| description | | description |
| "Specify the g.8032 ethernet ring"; | | "Specify the g.8032 ethernet ring"; |
| } | | } |
| container port0 { | | container port0 { |
| description | | description |
| "Port0 of the local node connected to G.8032 ring"; | | "Port0 of the local node connected to G.8032 ring"; |
| list interface { | | list interface { |
| key "interface-name"; | | key "interface-name"; |
| description | | description |
| "Assign interface as port0"; | | "Assign interface as port0"; |
| leaf interface-name { | | leaf interface-name { |
| type xr:Interface-name; | | type xr:Interface-name; |
| description | | description |
| "Assign interface as port0"; | | "Assign interface as port0"; |
| } | | } |
| container monitor { | | container monitor { |
| description | | description |
| "Assign the monitor interface for g.8032 ring port0"; | | "Assign the monitor interface for g.8032 ring port0"; |
| leaf interface { | | leaf interface { |
| type xr:Interface-name; | | type xr:Interface-name; |
| description | | description |
| "Assign the monitor interface"; | | "Assign the monitor interface"; |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| container port1 { | | container port1 { |
| description | | description |
| "Port1 of the local node connected to G.8032 ring"; | | "Port1 of the local node connected to G.8032 ring"; |
| list interface { | | list interface { |
| key "interface-name"; | | key "interface-name"; |
| description | | description |
| "Assign port1 interface"; | | "Assign port1 interface"; |
| leaf interface-name { | | leaf interface-name { |
| type xr:Interface-name; | | type xr:Interface-name; |
| description | | description |
| "Assign port1 interface"; | | "Assign port1 interface"; |
| } | | } |
| container monitor { | | container monitor { |
| description | | description |
| "Assign the monitor interface for g.8032 ring port1"; | | "Assign the monitor interface for g.8032 ring port1"; |
| leaf interface { | | leaf interface { |
| type xr:Interface-name; | | type xr:Interface-name; |
| description | | description |
| "Assign the monitor interface"; | | "Assign the monitor interface"; |
| } | | } |
| } | | } |
| } | | } |
| container none { | | container none { |
| presence "Indicates a none node is configured."; | | presence "Indicates a none node is configured."; |
| description | | description |
| "Assign port1 as none to enable g.8032 open-ring"; | | "Assign port1 as none to enable g.8032 open-ring"; |
| } | | } |
| container virtual { | | container virtual { |
| presence "Indicates a virtual node is configured."; | | presence "Indicates a virtual node is configured."; |
| description | | description |
| "Assign port1 as virtual to enable g.8032 sub-ring"; | | "Assign port1 as virtual to enable g.8032 sub-ring"; |
| } | | } |
| } | | } |
| container open-ring { | | container open-ring { |
| presence "Indicates a open-ring node is configured."; | | presence "Indicates a open-ring node is configured."; |
| description | | description |
| "Specify the g.8032 ring as open ring"; | | "Specify the g.8032 ring as open ring"; |
| } | | } |
| container exclusion-list { | | container exclusion-list { |
| description | | description |
| "Specifiy exclusion list not protected by ERP"; | | "Specifiy exclusion list not protected by ERP"; |
| leaf vlan-ids { | | leaf vlan-ids { |
| type xr:Cisco-ios-xr-string { | | type xr:Cisco-ios-xr-string { |
| length "1..800" { | | length "1..800" { |
| description | | description |
| "List of VLAN IDs in the form a-b,c,d,e-f,g,untagged"; | | "List of VLAN IDs in the form a-b,c,d,e-f,g,untagged"; |
| } | | } |
| } | | } |
| description | | description |
| "Assign list of VLANs to the exclusion list"; | | "Assign list of VLANs to the exclusion list"; |
| } | | } |
| } | | } |
| container instances { | | container instances { |
| description | | description |
| "Configure the g.8032 ethernet ring instance"; | | "Configure the g.8032 ethernet ring instance"; |
| list instance { | | list instance { |
| key "instance-id"; | | key "instance-id"; |
| description | | description |
| "Configure the g.8032 ethernet ring instance"; | | "Configure the g.8032 ethernet ring instance"; |
| leaf instance-id { | | leaf instance-id { |
| type uint32 { | | type uint32 { |
| range "1..2" { | | range "1..2" { |
| description | | description |
| "Instance number"; | | "Instance number"; |
| } | | } |
| } | | } |
| description | | description |
| "Configure the g.8032 ethernet ring instance"; | | "Configure the g.8032 ethernet ring instance"; |
| } | | } |
| leaf description { | | leaf description { |
| type string { | | type string { |
| length "1..32" { | | length "1..32" { |
| description | | description |
| "Description for the instance"; | | "Description for the instance"; |
| } | | } |
| } | | } |
| description | | description |
| "Description for g.8032 ethernet ring instance"; | | "Description for g.8032 ethernet ring instance"; |
| } | | } |
| leaf profile { | | leaf profile { |
| type xr:Cisco-ios-xr-string { | | type xr:Cisco-ios-xr-string { |
| length "1..32" { | | length "1..32" { |
| description | | description |
| "Ethernet ring profile name"; | | "Ethernet ring profile name"; |
| } | | } |
| } | | } |
| description | | description |
| "Specify associated g.8032 ethernet ring profile"; | | "Specify associated g.8032 ethernet ring profile"; |
| } | | } |
| container rpl { | | container rpl { |
| description | | description |
| "Specify RPL owner, neighbor or next-neighbor"; | | "Specify RPL owner, neighbor or next-neighbor"; |
| container port0 { | | container port0 { |
| presence "Indicates a port0 node is configured."; | | presence "Indicates a port0 node is configured."; |
| description | | description |
| "Assign port0 as RPL owner, neighbor or next-neighbor"; | | "Assign port0 as RPL owner, neighbor or next-neighbor"; |
| container owner { | | container owner { |
| must "not(../neighbor or ../next-neighbor)"; | | must "not(../neighbor or ../next-neighbor)"; |
| presence "Indicates a owner node is configured."; | | presence "Indicates a owner node is configured."; |
| description | | description |
| "RPL owner"; | | "RPL owner"; |
| } | | } |
| container neighbor { | | container neighbor { |
| must "not(../owner or ../next-neighbor)"; | | must "not(../owner or ../next-neighbor)"; |
| presence "Indicates a neighbor node is configured."; | | presence "Indicates a neighbor node is configured."; |
| description | | description |
| "RPL neighbor"; | | "RPL neighbor"; |
| } | | } |
| container next-neighbor { | | container next-neighbor { |
| must "not(../owner or ../neighbor)"; | | must "not(../owner or ../neighbor)"; |
| presence "Indicates a next-neighbor node is configured."; | | presence "Indicates a next-neighbor node is configured."; |
| description | | description |
| "RPL next neighbor"; | | "RPL next neighbor"; |
| } | | } |
| } | | } |
| container port1 { | | container port1 { |
| presence "Indicates a port1 node is configured."; | | presence "Indicates a port1 node is configured."; |
| description | | description |
| "Assign port1 as RPL owner, neighbor or next-neighbor"; | | "Assign port1 as RPL owner, neighbor or next-neighbor"; |
| container owner { | | container owner { |
| must "not(../neighbor or ../next-neighbor)"; | | must "not(../neighbor or ../next-neighbor)"; |
| presence "Indicates a owner node is configured."; | | presence "Indicates a owner node is configured."; |
| description | | description |
| "RPL owner"; | | "RPL owner"; |
| } | | } |
| container neighbor { | | container neighbor { |
| must "not(../owner or ../next-neighbor)"; | | must "not(../owner or ../next-neighbor)"; |
| presence "Indicates a neighbor node is configured."; | | presence "Indicates a neighbor node is configured."; |
| description | | description |
| "RPL neighbor"; | | "RPL neighbor"; |
| } | | } |
| container next-neighbor { | | container next-neighbor { |
| must "not(../owner or ../neighbor)"; | | must "not(../owner or ../neighbor)"; |
| presence "Indicates a next-neighbor node is configured."; | | presence "Indicates a next-neighbor node is configured."; |
| description | | description |
| "RPL next neighbor"; | | "RPL next neighbor"; |
| } | | } |
| } | | } |
| } | | } |
| container inclusion-list { | | container inclusion-list { |
| description | | description |
| "Specifiy inclusion list protected by ERP"; | | "Specifiy inclusion list protected by ERP"; |
| leaf vlan-ids { | | leaf vlan-ids { |
| type string { | | type string { |
| length "1..800" { | | length "1..800" { |
| description | | description |
| "List of VLAN IDs in the form a-b,c,d,e-f,g,untagged"; | | "List of VLAN IDs in the form a-b,c,d,e-f,g,untagged"; |
| } | | } |
| } | | } |
| description | | description |
| "Associates a set of VLAN IDs with the current instance"; | | "Associates a set of VLAN IDs with the current instance"; |
| } | | } |
| } | | } |
| container aps-channel { | | container aps-channel { |
| presence "Indicates a aps-channel node is configured."; | | presence "Indicates a aps-channel node is configured."; |
| description | | description |
| "Configure g.8032 instance aps-channel"; | | "Configure g.8032 instance aps-channel"; |
| leaf level { | | leaf level { |
| type uint32 { | | type uint32 { |
| range "0..7" { | | range "0..7" { |
| description | | description |
| "APS message level"; | | "APS message level"; |
| } | | } |
| } | | } |
| description | | description |
| "Specify the aps message level"; | | "Specify the aps message level"; |
| } | | } |
| container port0 { | | container port0 { |
| description | | description |
| "Config g.8032 aps-channel info associated to port0"; | | "Config g.8032 aps-channel info associated to port0"; |
| leaf interface { | | leaf interface { |
| type xr:Interface-name; | | type xr:Interface-name; |
| description | | description |
| "Assign interface associated to port0"; | | "Assign interface associated to port0"; |
| } | | } |
| } | | } |
| container port1 { | | container port1 { |
| description | | description |
| "Config g.8032 aps-channel info associated to port1"; | | "Config g.8032 aps-channel info associated to port1"; |
| leaf interface { | | leaf interface { |
| type xr:Interface-name; | | type xr:Interface-name; |
| must | | must |
| "not(../bridge-domain or ../xconnect | | "not(../bridge-domain or ../xconnect |
| or ../none)"; | | or ../none)"; |
| description | | description |
| "Assign interface associated to port1"; | | "Assign interface associated to port1"; |
| } | | } |
| leaf bridge-domain { | | leaf bridge-domain { |
| type xr:Cisco-ios-xr-string { | | type xr:Cisco-ios-xr-string { |
| length "1..27" { | | length "1..27" { |
| description | | description |
| "Name of the bridge domain"; | | "Name of the bridge domain"; |
| } | | } |
| } | | } |
| must | | must |
| "not(../interface or ../xconnect | | "not(../interface or ../xconnect |
| or ../none)"; | | or ../none)"; |
| description | | description |
| "Specify VPLS domain where virtual channel is connected"; | | "Specify VPLS domain where virtual channel is connected"; |
| } | | } |
| leaf xconnect { | | leaf xconnect { |
| type xr:Cisco-ios-xr-string { | | type xr:Cisco-ios-xr-string { |
| length "1..38" { | | length "1..38" { |
| description | | description |
| "Name of the xconnect"; | | "Name of the xconnect"; |
| } | | } |
| } | | } |
| must | | must |
| "not(../interface or ../bridge-domain | | "not(../interface or ../bridge-domain |
| or ../none)"; | | or ../none)"; |
| description | | description |
| "Specify VPWS xconnect where virtual channel is connected"; | | "Specify VPWS xconnect where virtual channel is connected"; |
| } | | } |
| container none { | | container none { |
| must | | must |
| "not(../interface or ../bridge-domain | | "not(../interface or ../bridge-domain |
| or ../xconnect)"; | | or ../xconnect)"; |
| presence "Indicates a none node is configured."; | | presence "Indicates a none node is configured."; |
| description | | description |
| "Specify APS channel port1 as none"; | | "Specify APS channel port1 as none"; |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| container flexible-xconnect-service { | | container flexible-xconnect-service { |
| description | | description |
| "Configure flexible-xconnect-service"; | | "Configure flexible-xconnect-service"; |
| container vlan-unawares { | | container vlan-unawares { |
| description | | description |
| "Configure in vlan-unaware mode"; | | "Configure in vlan-unaware mode"; |
| list vlan-unaware { | | list vlan-unaware { |
| key "service-name"; | | key "service-name"; |
| description | | description |
| "Configure in vlan-unaware mode"; | | "Configure in vlan-unaware mode"; |
| leaf service-name { | | leaf service-name { |
| type xr:Cisco-ios-xr-string { | | type xr:Cisco-ios-xr-string { |
| length "1..23" { | | length "1..23" { |
| description | | description |
| "Name of the flexible-xconnect-service"; | | "Name of the flexible-xconnect-service"; |
| } | | } |
| } | | } |
| description | | description |
| "Configure in vlan-unaware mode"; | | "Configure in vlan-unaware mode"; |
| } | | } |
| container interfaces { | | container interfaces { |
| description | | description |
| "Specify the attachment circuit "; | | "Specify the attachment circuit "; |
| list interface { | | list interface { |
| key "interface-name"; | | key "interface-name"; |
| description | | description |
| "Specify sub-interface name to attach to flexible xconnect service"; | | "Specify sub-interface name to attach to flexible xconnect service"; |
| leaf interface-name { | | leaf interface-name { |
| type xr:Interface-name; | | type xr:Interface-name; |
| description | | description |
| "Specify sub-interface name to attach to flexible xconnect service"; | | "Specify sub-interface name to attach to flexible xconnect service"; |
| } | | } |
| } | | } |
| } | | } |
| container neighbor { | | container neighbor { |
| description | | description |
| "Specify the peer to cross connect"; | | "Specify the peer to cross connect"; |
| container evpn { | | container evpn { |
| description | | description |
| "Specify the Ethernet VPN"; | | "Specify the Ethernet VPN"; |
| container evis { | | container evis { |
| description | | description |
| "Ethernet VPN Identifier"; | | "Ethernet VPN Identifier"; |
| list evi { | | list evi { |
| key "vpn-id remote-ac-id"; | | key "vpn-id remote-ac-id"; |
| description | | description |
| "Ethernet VPN Identifier"; | | "Ethernet VPN Identifier"; |
| leaf vpn-id { | | leaf vpn-id { |
| type uint32 { | | type uint32 { |
| range "1..65534" { | | range "1..65534" { |
| description | | description |
| "Ethernet VPN ID to set"; | | "Ethernet VPN ID to set"; |
| } | | } |
| } | | } |
| description | | description |
| "Ethernet VPN Identifier"; | | "Ethernet VPN Identifier"; |
| } | | } |
| leaf remote-ac-id { | | leaf remote-ac-id { |
| type uint32 { | | type uint32 { |
| range "1..16777215" { | | range "1..16777215" { |
| description | | description |
| "Remote ac-id (hex or decimal format)"; | | "Remote ac-id (hex or decimal format)"; |
| } | | } |
| } | | } |
| description | | description |
| "Specify remote attachment circuit identifier"; | | "Specify remote attachment circuit identifier"; |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| container vlan-aware { | | container vlan-aware { |
| description | | description |
| "Configure in vlan-aware mode"; | | "Configure in vlan-aware mode"; |
| container evis { | | container evis { |
| description | | description |
| "Ethernet VPN Identifier"; | | "Ethernet VPN Identifier"; |
| list evi { | | list evi { |
| key "vpn-id"; | | key "vpn-id"; |
| description | | description |
| "Ethernet VPN Identifier"; | | "Ethernet VPN Identifier"; |
| leaf vpn-id { | | leaf vpn-id { |
| type uint32 { | | type uint32 { |
| range "1..65534" { | | range "1..65534" { |
| description | | description |
| "Ethernet VPN ID to set"; | | "Ethernet VPN ID to set"; |
| } | | } |
| } | | } |
| description | | description |
| "Ethernet VPN Identifier"; | | "Ethernet VPN Identifier"; |
| } | | } |
| container interfaces { | | container interfaces { |
| description | | description |
| "Specify the attachment circuit "; | | "Specify the attachment circuit "; |
| list interface { | | list interface { |
| key "interface-name"; | | key "interface-name"; |
| description | | description |
| "Specify sub-interface name to attach to flexible xconnect service"; | | "Specify sub-interface name to attach to flexible xconnect service"; |
| leaf interface-name { | | leaf interface-name { |
| type xr:Interface-name; | | type xr:Interface-name; |
| description | | description |
| "Specify sub-interface name to attach to flexible xconnect service"; | | "Specify sub-interface name to attach to flexible xconnect service"; |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| container vlan-switches { | | container vlan-switches { |
| description | | description |
| "Configure a VLAN Switch"; | | "Configure a VLAN Switch"; |
| list vlan-switch { | | list vlan-switch { |
| key "vlan-switch-name"; | | key "vlan-switch-name"; |
| description | | description |
| "Configure a VLAN Switch"; | | "Configure a VLAN Switch"; |
| leaf vlan-switch-name { | | leaf vlan-switch-name { |
| type xr:Cisco-ios-xr-string { | | type xr:Cisco-ios-xr-string { |
| length "1..32" { | | length "1..32" { |
| description | | description |
| "Name of the VLAN Switch"; | | "Name of the VLAN Switch"; |
| } | | } |
| } | | } |
| description | | description |
| "Configure a VLAN Switch"; | | "Configure a VLAN Switch"; |
| } | | } |
| container vlan { | | container vlan { |
| description | | description |
| "Configure VLAN IDs"; | | "Configure VLAN IDs"; |
| leaf vlan-id-range1-start { | | leaf vlan-id-range1-start { |
| type uint32 { | | type uint32 { |
| range "1..4094" { | | range "1..4094" { |
| description | | description |
| "Start of VLAN ID range"; | | "Start of VLAN ID range"; |
| } | | } |
| } | | } |
| description | | description |
| "Start of VLAN ID range"; | | "Start of VLAN ID range"; |
| } | | } |
| leaf vlan-id-range1-end { | | leaf vlan-id-range1-end { |
| type uint32 { | | type uint32 { |
| range "1..4094" { | | range "1..4094" { |
| description | | description |
| "End of VLAN ID range"; | | "End of VLAN ID range"; |
| } | | } |
| } | | } |
| must "../vlan-id-range1-start"; | | must "../vlan-id-range1-start"; |
| description | | description |
| "End of VLAN ID range"; | | "End of VLAN ID range"; |
| } | | } |
| leaf vlan-id-range2-start { | | leaf vlan-id-range2-start { |
| type uint32 { | | type uint32 { |
| range "1..4094" { | | range "1..4094" { |
| description | | description |
| "Start of VLAN ID range"; | | "Start of VLAN ID range"; |
| } | | } |
| } | | } |
| must "../vlan-id-range1-start"; | | must "../vlan-id-range1-start"; |
| description | | description |
| "Start of VLAN ID range"; | | "Start of VLAN ID range"; |
| } | | } |
| leaf vlan-id-range2-end { | | leaf vlan-id-range2-end { |
| type uint32 { | | type uint32 { |
| range "1..4094" { | | range "1..4094" { |
| description | | description |
| "End of VLAN ID range"; | | "End of VLAN ID range"; |
| } | | } |
| } | | } |
| must "../vlan-id-range2-start"; | | must "../vlan-id-range2-start"; |
| description | | description |
| "End of VLAN ID range"; | | "End of VLAN ID range"; |
| } | | } |
| leaf vlan-id-range3-start { | | leaf vlan-id-range3-start { |
| type uint32 { | | type uint32 { |
| range "1..4094" { | | range "1..4094" { |
| description | | description |
| "Start of VLAN ID range"; | | "Start of VLAN ID range"; |
| } | | } |
| } | | } |
| must "../vlan-id-range2-start"; | | must "../vlan-id-range2-start"; |
| description | | description |
| "Start of VLAN ID range"; | | "Start of VLAN ID range"; |
| } | | } |
| leaf vlan-id-range3-end { | | leaf vlan-id-range3-end { |
| type uint32 { | | type uint32 { |
| range "1..4094" { | | range "1..4094" { |
| description | | description |
| "End of VLAN ID range"; | | "End of VLAN ID range"; |
| } | | } |
| } | | } |
| must "../vlan-id-range3-start"; | | must "../vlan-id-range3-start"; |
| description | | description |
| "End of VLAN ID range"; | | "End of VLAN ID range"; |
| } | | } |
| leaf vlan-id-range4-start { | | leaf vlan-id-range4-start { |
| type uint32 { | | type uint32 { |
| range "1..4094" { | | range "1..4094" { |
| description | | description |
| "Start of VLAN ID range"; | | "Start of VLAN ID range"; |
| } | | } |
| } | | } |
| must "../vlan-id-range3-start"; | | must "../vlan-id-range3-start"; |
| description | | description |
| "Start of VLAN ID range"; | | "Start of VLAN ID range"; |
| } | | } |
| leaf vlan-id-range4-end { | | leaf vlan-id-range4-end { |
| type uint32 { | | type uint32 { |
| range "1..4094" { | | range "1..4094" { |
| description | | description |
| "End of VLAN ID range"; | | "End of VLAN ID range"; |
| } | | } |
| } | | } |
| must "../vlan-id-range4-start"; | | must "../vlan-id-range4-start"; |
| description | | description |
| "End of VLAN ID range"; | | "End of VLAN ID range"; |
| } | | } |
| leaf vlan-id-range5-start { | | leaf vlan-id-range5-start { |
| type uint32 { | | type uint32 { |
| range "1..4094" { | | range "1..4094" { |
| description | | description |
| "Start of VLAN ID range"; | | "Start of VLAN ID range"; |
| } | | } |
| } | | } |
| must "../vlan-id-range4-start"; | | must "../vlan-id-range4-start"; |
| description | | description |
| "Start of VLAN ID range"; | | "Start of VLAN ID range"; |
| } | | } |
| leaf vlan-id-range5-end { | | leaf vlan-id-range5-end { |
| type uint32 { | | type uint32 { |
| range "1..4094" { | | range "1..4094" { |
| description | | description |
| "End of VLAN ID range"; | | "End of VLAN ID range"; |
| } | | } |
| } | | } |
| must "../vlan-id-range5-start"; | | must "../vlan-id-range5-start"; |
| description | | description |
| "End of VLAN ID range"; | | "End of VLAN ID range"; |
| } | | } |
| leaf vlan-id-range6-start { | | leaf vlan-id-range6-start { |
| type uint32 { | | type uint32 { |
| range "1..4094" { | | range "1..4094" { |
| description | | description |
| "Start of VLAN ID range"; | | "Start of VLAN ID range"; |
| } | | } |
| } | | } |
| must "../vlan-id-range5-start"; | | must "../vlan-id-range5-start"; |
| description | | description |
| "Start of VLAN ID range"; | | "Start of VLAN ID range"; |
| } | | } |
| leaf vlan-id-range6-end { | | leaf vlan-id-range6-end { |
| type uint32 { | | type uint32 { |
| range "1..4094" { | | range "1..4094" { |
| description | | description |
| "End of VLAN ID range"; | | "End of VLAN ID range"; |
| } | | } |
| } | | } |
| must "../vlan-id-range6-start"; | | must "../vlan-id-range6-start"; |
| description | | description |
| "End of VLAN ID range"; | | "End of VLAN ID range"; |
| } | | } |
| leaf vlan-id-range7-start { | | leaf vlan-id-range7-start { |
| type uint32 { | | type uint32 { |
| range "1..4094" { | | range "1..4094" { |
| description | | description |
| "Start of VLAN ID range"; | | "Start of VLAN ID range"; |
| } | | } |
| } | | } |
| must "../vlan-id-range6-start"; | | must "../vlan-id-range6-start"; |
| description | | description |
| "Start of VLAN ID range"; | | "Start of VLAN ID range"; |
| } | | } |
| leaf vlan-id-range7-end { | | leaf vlan-id-range7-end { |
| type uint32 { | | type uint32 { |
| range "1..4094" { | | range "1..4094" { |
| description | | description |
| "End of VLAN ID range"; | | "End of VLAN ID range"; |
| } | | } |
| } | | } |
| must "../vlan-id-range7-start"; | | must "../vlan-id-range7-start"; |
| description | | description |
| "End of VLAN ID range"; | | "End of VLAN ID range"; |
| } | | } |
| leaf vlan-id-range8-start { | | leaf vlan-id-range8-start { |
| type uint32 { | | type uint32 { |
| range "1..4094" { | | range "1..4094" { |
| description | | description |
| "Start of VLAN ID range"; | | "Start of VLAN ID range"; |
| } | | } |
| } | | } |
| must "../vlan-id-range7-start"; | | must "../vlan-id-range7-start"; |
| description | | description |
| "Start of VLAN ID range"; | | "Start of VLAN ID range"; |
| } | | } |
| leaf vlan-id-range8-end { | | leaf vlan-id-range8-end { |
| type uint32 { | | type uint32 { |
| range "1..4094" { | | range "1..4094" { |
| description | | description |
| "End of VLAN ID range"; | | "End of VLAN ID range"; |
| } | | } |
| } | | } |
| must "../vlan-id-range8-start"; | | must "../vlan-id-range8-start"; |
| description | | description |
| "End of VLAN ID range"; | | "End of VLAN ID range"; |
| } | | } |
| leaf vlan-id-range9-start { | | leaf vlan-id-range9-start { |
| type uint32 { | | type uint32 { |
| range "1..4094" { | | range "1..4094" { |
| description | | description |
| "Start of VLAN ID range"; | | "Start of VLAN ID range"; |
| } | | } |
| } | | } |
| must "../vlan-id-range8-start"; | | must "../vlan-id-range8-start"; |
| description | | description |
| "Start of VLAN ID range"; | | "Start of VLAN ID range"; |
| } | | } |
| leaf vlan-id-range9-end { | | leaf vlan-id-range9-end { |
| type uint32 { | | type uint32 { |
| range "1..4094" { | | range "1..4094" { |
| description | | description |
| "End of VLAN ID range"; | | "End of VLAN ID range"; |
| } | | } |
| } | | } |
| must "../vlan-id-range9-start"; | | must "../vlan-id-range9-start"; |
| description | | description |
| "End of VLAN ID range"; | | "End of VLAN ID range"; |
| } | | } |
| } | | } |
| container interfaces { | | container interfaces { |
| description | | description |
| "Assign VSP interface to VLAN Switch"; | | "Assign VSP interface to VLAN Switch"; |
| list interface { | | list interface { |
| key "interface-name"; | | key "interface-name"; |
| description | | description |
| "Specify interface name"; | | "Specify interface name"; |
| leaf interface-name { | | leaf interface-name { |
| type xr:Interface-name; | | type xr:Interface-name; |
| description | | description |
| "Specify interface name"; | | "Specify interface name"; |
| } | | } |
| } | | } |
| } | | } |
| container routed { | | container routed { |
| description | | description |
| "VLAN Switch L3 interfaces"; | | "VLAN Switch L3 interfaces"; |
| container interface { | | container interface { |
| description | | description |
| "Assign L3 interfaces to VLAN Switch"; | | "Assign L3 interfaces to VLAN Switch"; |
| container bvi { | | container bvi { |
| description | | description |
| "Assign BVI interfaces to VLAN Switch"; | | "Assign BVI interfaces to VLAN Switch"; |
| leaf interface-number-range1-start { | | leaf interface-number-range1-start { |
| type uint32 { | | type uint32 { |
| range "1..4294967295" { | | range "1..4294967295" { |
| description | | description |
| "Start of interface number range"; | | "Start of interface number range"; |
| } | | } |
| } | | } |
| description | | description |
| "Start of interface number range"; | | "Start of interface number range"; |
| } | | } |
| leaf interface-number-range1-end { | | leaf interface-number-range1-end { |
| type uint32 { | | type uint32 { |
| range "1..4294967295" { | | range "1..4294967295" { |
| description | | description |
| "End of interface number range"; | | "End of interface number range"; |
| } | | } |
| } | | } |
| must "../interface-number-range1-start"; | | must "../interface-number-range1-start"; |
| description | | description |
| "End of interface number range"; | | "End of interface number range"; |
| } | | } |
| leaf interface-number-range2-start { | | leaf interface-number-range2-start { |
| type uint32 { | | type uint32 { |
| range "1..4294967295" { | | range "1..4294967295" { |
| description | | description |
| "Start of interface number range"; | | "Start of interface number range"; |
| } | | } |
| } | | } |
| must "../interface-number-range1-start"; | | must "../interface-number-range1-start"; |
| description | | description |
| "Start of interface number range"; | | "Start of interface number range"; |
| } | | } |
| leaf interface-number-range2-end { | | leaf interface-number-range2-end { |
| type uint32 { | | type uint32 { |
| range "1..4294967295" { | | range "1..4294967295" { |
| description | | description |
| "End of interface number range"; | | "End of interface number range"; |
| } | | } |
| } | | } |
| must "../interface-number-range2-start"; | | must "../interface-number-range2-start"; |
| description | | description |
| "End of interface number range"; | | "End of interface number range"; |
| } | | } |
| leaf interface-number-range3-start { | | leaf interface-number-range3-start { |
| type uint32 { | | type uint32 { |
| range "1..4294967295" { | | range "1..4294967295" { |
| description | | description |
| "Start of interface number range"; | | "Start of interface number range"; |
| } | | } |
| } | | } |
| must "../interface-number-range2-start"; | | must "../interface-number-range2-start"; |
| description | | description |
| "Start of interface number range"; | | "Start of interface number range"; |
| } | | } |
| leaf interface-number-range3-end { | | leaf interface-number-range3-end { |
| type uint32 { | | type uint32 { |
| range "1..4294967295" { | | range "1..4294967295" { |
| description | | description |
| "End of interface number range"; | | "End of interface number range"; |
| } | | } |
| } | | } |
| must "../interface-number-range3-start"; | | must "../interface-number-range3-start"; |
| description | | description |
| "End of interface number range"; | | "End of interface number range"; |
| } | | } |
| leaf interface-number-range4-start { | | leaf interface-number-range4-start { |
| type uint32 { | | type uint32 { |
| range "1..4294967295" { | | range "1..4294967295" { |
| description | | description |
| "Start of interface number range"; | | "Start of interface number range"; |
| } | | } |
| } | | } |
| must "../interface-number-range3-start"; | | must "../interface-number-range3-start"; |
| description | | description |
| "Start of interface number range"; | | "Start of interface number range"; |
| } | | } |
| leaf interface-number-range4-end { | | leaf interface-number-range4-end { |
| type uint32 { | | type uint32 { |
| range "1..4294967295" { | | range "1..4294967295" { |
| description | | description |
| "End of interface number range"; | | "End of interface number range"; |
| } | | } |
| } | | } |
| must "../interface-number-range4-start"; | | must "../interface-number-range4-start"; |
| description | | description |
| "End of interface number range"; | | "End of interface number range"; |
| } | | } |
| leaf interface-number-range5-start { | | leaf interface-number-range5-start { |
| type uint32 { | | type uint32 { |
| range "1..4294967295" { | | range "1..4294967295" { |
| description | | description |
| "Start of interface number range"; | | "Start of interface number range"; |
| } | | } |
| } | | } |
| must "../interface-number-range4-start"; | | must "../interface-number-range4-start"; |
| description | | description |
| "Start of interface number range"; | | "Start of interface number range"; |
| } | | } |
| leaf interface-number-range5-end { | | leaf interface-number-range5-end { |
| type uint32 { | | type uint32 { |
| range "1..4294967295" { | | range "1..4294967295" { |
| description | | description |
| "End of interface number range"; | | "End of interface number range"; |
| } | | } |
| } | | } |
| must "../interface-number-range4-start"; | | must "../interface-number-range4-start"; |
| description | | description |
| "End of interface number range"; | | "End of interface number range"; |
| } | | } |
| leaf interface-number-range6-start { | | leaf interface-number-range6-start { |
| type uint32 { | | type uint32 { |
| range "1..4294967295" { | | range "1..4294967295" { |
| description | | description |
| "Start of interface number range"; | | "Start of interface number range"; |
| } | | } |
| } | | } |
| must "../interface-number-range5-start"; | | must "../interface-number-range5-start"; |
| description | | description |
| "Start of interface number range"; | | "Start of interface number range"; |
| } | | } |
| leaf interface-number-range6-end { | | leaf interface-number-range6-end { |
| type uint32 { | | type uint32 { |
| range "1..4294967295" { | | range "1..4294967295" { |
| description | | description |
| "End of interface number range"; | | "End of interface number range"; |
| } | | } |
| } | | } |
| must "../interface-number-range6-start"; | | must "../interface-number-range6-start"; |
| description | | description |
| "End of interface number range"; | | "End of interface number range"; |
| } | | } |
| leaf interface-number-range7-start { | | leaf interface-number-range7-start { |
| type uint32 { | | type uint32 { |
| range "1..4294967295" { | | range "1..4294967295" { |
| description | | description |
| "Start of interface number range"; | | "Start of interface number range"; |
| } | | } |
| } | | } |
| must "../interface-number-range6-start"; | | must "../interface-number-range6-start"; |
| description | | description |
| "Start of interface number range"; | | "Start of interface number range"; |
| } | | } |
| leaf interface-number-range7-end { | | leaf interface-number-range7-end { |
| type uint32 { | | type uint32 { |
| range "1..4294967295" { | | range "1..4294967295" { |
| description | | description |
| "End of interface number range"; | | "End of interface number range"; |
| } | | } |
| } | | } |
| must "../interface-number-range7-start"; | | must "../interface-number-range7-start"; |
| description | | description |
| "End of interface number range"; | | "End of interface number range"; |
| } | | } |
| leaf interface-number-range8-start { | | leaf interface-number-range8-start { |
| type uint32 { | | type uint32 { |
| range "1..4294967295" { | | range "1..4294967295" { |
| description | | description |
| "Start of interface number range"; | | "Start of interface number range"; |
| } | | } |
| } | | } |
| must "../interface-number-range7-start"; | | must "../interface-number-range7-start"; |
| description | | description |
| "Start of interface number range"; | | "Start of interface number range"; |
| } | | } |
| leaf interface-number-range8-end { | | leaf interface-number-range8-end { |
| type uint32 { | | type uint32 { |
| range "1..4294967295" { | | range "1..4294967295" { |
| description | | description |
| "End of interface number range"; | | "End of interface number range"; |
| } | | } |
| } | | } |
| must "../interface-number-range8-start"; | | must "../interface-number-range8-start"; |
| description | | description |
| "End of interface number range"; | | "End of interface number range"; |
| } | | } |
| leaf interface-number-range9-start { | | leaf interface-number-range9-start { |
| type uint32 { | | type uint32 { |
| range "1..4294967295" { | | range "1..4294967295" { |
| description | | description |
| "Start of interface number range"; | | "Start of interface number range"; |
| } | | } |
| } | | } |
| must "../interface-number-range8-start"; | | must "../interface-number-range8-start"; |
| description | | description |
| "Start of interface number range"; | | "Start of interface number range"; |
| } | | } |
| leaf interface-number-range9-end { | | leaf interface-number-range9-end { |
| type uint32 { | | type uint32 { |
| range "1..4294967295" { | | range "1..4294967295" { |
| description | | description |
| "End of interface number range"; | | "End of interface number range"; |
| } | | } |
| } | | } |
| must "../interface-number-range9-start"; | | must "../interface-number-range9-start"; |
| description | | description |
| "End of interface number range"; | | "End of interface number range"; |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| container vni { | | container vni { |
| description | | description |
| "Assign VxLAN Network Identifiers to VLAN Switch"; | | "Assign VxLAN Network Identifiers to VLAN Switch"; |
| leaf vni-range1-start { | | leaf vni-range1-start { |
| type uint32 { | | type uint32 { |
| range "1..16777215" { | | range "1..16777215" { |
| description | | description |
| "Start of VNI range"; | | "Start of VNI range"; |
| } | | } |
| } | | } |
| description | | description |
| "Start of VNI range"; | | "Start of VNI range"; |
| } | | } |
| leaf vni-range1-end { | | leaf vni-range1-end { |
| type uint32 { | | type uint32 { |
| range "1..16777215" { | | range "1..16777215" { |
| description | | description |
| "End of VNI range"; | | "End of VNI range"; |
| } | | } |
| } | | } |
| must "../vni-range1-start"; | | must "../vni-range1-start"; |
| description | | description |
| "End of VNI range"; | | "End of VNI range"; |
| } | | } |
| leaf vni-range2-start { | | leaf vni-range2-start { |
| type uint32 { | | type uint32 { |
| range "1..16777215" { | | range "1..16777215" { |
| description | | description |
| "Start of VNI range"; | | "Start of VNI range"; |
| } | | } |
| } | | } |
| must "../vni-range1-start"; | | must "../vni-range1-start"; |
| description | | description |
| "Start of VNI range"; | | "Start of VNI range"; |
| } | | } |
| leaf vni-range2-end { | | leaf vni-range2-end { |
| type uint32 { | | type uint32 { |
| range "1..16777215" { | | range "1..16777215" { |
| description | | description |
| "End of VNI range"; | | "End of VNI range"; |
| } | | } |
| } | | } |
| must "../vni-range2-start"; | | must "../vni-range2-start"; |
| description | | description |
| "End of VNI range"; | | "End of VNI range"; |
| } | | } |
| leaf vni-range3-start { | | leaf vni-range3-start { |
| type uint32 { | | type uint32 { |
| range "1..16777215" { | | range "1..16777215" { |
| description | | description |
| "Start of VNI range"; | | "Start of VNI range"; |
| } | | } |
| } | | } |
| must "../vni-range2-start"; | | must "../vni-range2-start"; |
| description | | description |
| "Start of VNI range"; | | "Start of VNI range"; |
| } | | } |
| leaf vni-range3-end { | | leaf vni-range3-end { |
| type uint32 { | | type uint32 { |
| range "1..16777215" { | | range "1..16777215" { |
| description | | description |
| "End of VNI range"; | | "End of VNI range"; |
| } | | } |
| } | | } |
| must "../vni-range3-start"; | | must "../vni-range3-start"; |
| description | | description |
| "End of VNI range"; | | "End of VNI range"; |
| } | | } |
| leaf vni-range4-start { | | leaf vni-range4-start { |
| type uint32 { | | type uint32 { |
| range "1..16777215" { | | range "1..16777215" { |
| description | | description |
| "Start of VNI range"; | | "Start of VNI range"; |
| } | | } |
| } | | } |
| must "../vni-range3-start"; | | must "../vni-range3-start"; |
| description | | description |
| "Start of VNI range"; | | "Start of VNI range"; |
| } | | } |
| leaf vni-range4-end { | | leaf vni-range4-end { |
| type uint32 { | | type uint32 { |
| range "1..16777215" { | | range "1..16777215" { |
| description | | description |
| "End of VNI range"; | | "End of VNI range"; |
| } | | } |
| } | | } |
| must "../vni-range4-start"; | | must "../vni-range4-start"; |
| description | | description |
| "End of VNI range"; | | "End of VNI range"; |
| } | | } |
| leaf vni-range5-start { | | leaf vni-range5-start { |
| type uint32 { | | type uint32 { |
| range "1..16777215" { | | range "1..16777215" { |
| description | | description |
| "Start of VNI range"; | | "Start of VNI range"; |
| } | | } |
| } | | } |
| must "../vni-range4-start"; | | must "../vni-range4-start"; |
| description | | description |
| "Start of VNI range"; | | "Start of VNI range"; |
| } | | } |
| leaf vni-range5-end { | | leaf vni-range5-end { |
| type uint32 { | | type uint32 { |
| range "1..16777215" { | | range "1..16777215" { |
| description | | description |
| "End of VNI range"; | | "End of VNI range"; |
| } | | } |
| } | | } |
| must "../vni-range5-start"; | | must "../vni-range5-start"; |
| description | | description |
| "End of VNI range"; | | "End of VNI range"; |
| } | | } |
| leaf vni-range6-start { | | leaf vni-range6-start { |
| type uint32 { | | type uint32 { |
| range "1..16777215" { | | range "1..16777215" { |
| description | | description |
| "Start of VNI range"; | | "Start of VNI range"; |
| } | | } |
| } | | } |
| must "../vni-range5-start"; | | must "../vni-range5-start"; |
| description | | description |
| "Start of VNI range"; | | "Start of VNI range"; |
| } | | } |
| leaf vni-range6-end { | | leaf vni-range6-end { |
| type uint32 { | | type uint32 { |
| range "1..16777215" { | | range "1..16777215" { |
| description | | description |
| "End of VNI range"; | | "End of VNI range"; |
| } | | } |
| } | | } |
| must "../vni-range6-start"; | | must "../vni-range6-start"; |
| description | | description |
| "End of VNI range"; | | "End of VNI range"; |
| } | | } |
| leaf vni-range7-start { | | leaf vni-range7-start { |
| type uint32 { | | type uint32 { |
| range "1..16777215" { | | range "1..16777215" { |
| description | | description |
| "Start of VNI range"; | | "Start of VNI range"; |
| } | | } |
| } | | } |
| must "../vni-range6-start"; | | must "../vni-range6-start"; |
| description | | description |
| "Start of VNI range"; | | "Start of VNI range"; |
| } | | } |
| leaf vni-range7-end { | | leaf vni-range7-end { |
| type uint32 { | | type uint32 { |
| range "1..16777215" { | | range "1..16777215" { |
| description | | description |
| "End of VNI range"; | | "End of VNI range"; |
| } | | } |
| } | | } |
| must "../vni-range7-start"; | | must "../vni-range7-start"; |
| description | | description |
| "End of VNI range"; | | "End of VNI range"; |
| } | | } |
| leaf vni-range8-start { | | leaf vni-range8-start { |
| type uint32 { | | type uint32 { |
| range "1..16777215" { | | range "1..16777215" { |
| description | | description |
| "Start of VNI range"; | | "Start of VNI range"; |
| } | | } |
| } | | } |
| must "../vni-range7-start"; | | must "../vni-range7-start"; |
| description | | description |
| "Start of VNI range"; | | "Start of VNI range"; |
| } | | } |
| leaf vni-range8-end { | | leaf vni-range8-end { |
| type uint32 { | | type uint32 { |
| range "1..16777215" { | | range "1..16777215" { |
| description | | description |
| "End of VNI range"; | | "End of VNI range"; |
| } | | } |
| } | | } |
| must "../vni-range8-start"; | | must "../vni-range8-start"; |
| description | | description |
| "End of VNI range"; | | "End of VNI range"; |
| } | | } |
| leaf vni-range9-start { | | leaf vni-range9-start { |
| type uint32 { | | type uint32 { |
| range "1..16777215" { | | range "1..16777215" { |
| description | | description |
| "Start of VNI range"; | | "Start of VNI range"; |
| } | | } |
| } | | } |
| must "../vni-range8-start"; | | must "../vni-range8-start"; |
| description | | description |
| "Start of VNI range"; | | "Start of VNI range"; |
| } | | } |
| leaf vni-range9-end { | | leaf vni-range9-end { |
| type uint32 { | | type uint32 { |
| range "1..16777215" { | | range "1..16777215" { |
| description | | description |
| "End of VNI range"; | | "End of VNI range"; |
| } | | } |
| } | | } |
| must "../vni-range9-start"; | | must "../vni-range9-start"; |
| description | | description |
| "End of VNI range"; | | "End of VNI range"; |
| } | | } |
| } | | } |
| container bridge-domains { | | container bridge-domains { |
| description | | description |
| "Configure bridge domain"; | | "Configure bridge domain"; |
| list bridge-domain { | | list bridge-domain { |
| key "bridge-domain-name"; | | key "bridge-domain-name"; |
| description | | description |
| "Configure bridge domain"; | | "Configure bridge domain"; |
| leaf bridge-domain-name { | | leaf bridge-domain-name { |
| type xr:Cisco-ios-xr-string { | | type xr:Cisco-ios-xr-string { |
| length "1..27" { | | length "1..27" { |
| description | | description |
| "Name of the bridge domain in the following format: vlan#"; | | "Name of the bridge domain in the following format: vlan#"; |
| } | | } |
| pattern "vlan[0-9]+"; | | pattern "vlan[0-9]+"; |
| } | | } |
| description | | description |
| "Configure bridge domain"; | | "Configure bridge domain"; |
| } | | } |
| container evis { | | container evis { |
| description | | description |
| "Ethernet VPN identifier"; | | "Ethernet VPN identifier"; |
| list evi { | | list evi { |
| key "vpn-id"; | | key "vpn-id"; |
| description | | description |
| "Ethernet VPN identifier"; | | "Ethernet VPN identifier"; |
| leaf vpn-id { | | leaf vpn-id { |
| type uint32 { | | type uint32 { |
| range "1..65534" { | | range "1..65534" { |
| description | | description |
| "Ethernet VPN ID to set"; | | "Ethernet VPN ID to set"; |
| } | | } |
| } | | } |
| description | | description |
| "Ethernet VPN identifier"; | | "Ethernet VPN identifier"; |
| } | | } |
| } | | } |
| } | | } |
| container vnis { | | container vnis { |
| description | | description |
| "VxLAN VPN identifier"; | | "VxLAN VPN identifier"; |
| list vni { | | list vni { |
| key "vni-id"; | | key "vni-id"; |
| description | | description |
| "VxLAN VPN identifier"; | | "VxLAN VPN identifier"; |
| leaf vni-id { | | leaf vni-id { |
| type uint32 { | | type uint32 { |
| range "1..16777215" { | | range "1..16777215" { |
| description | | description |
| "VxLAN VPN ID to set"; | | "VxLAN VPN ID to set"; |
| } | | } |
| } | | } |
| description | | description |
| "VxLAN VPN identifier"; | | "VxLAN VPN identifier"; |
| } | | } |
| } | | } |
| } | | } |
| container nv { | | container nv { |
| description | | description |
| "Configure nV Satellite Settings"; | | "Configure nV Satellite Settings"; |
| container satellite { | | container satellite { |
| presence "Indicates a satellite node is configured."; | | presence "Indicates a satellite node is configured."; |
| description | | description |
| "Configure nV Satellite Settings"; | | "Configure nV Satellite Settings"; |
| container offload { | | container offload { |
| description | | description |
| "Hardware offloading"; | | "Hardware offloading"; |
| container ipv4 { | | container ipv4 { |
| description | | description |
| "IPv4"; | | "IPv4"; |
| container multicast { | | container multicast { |
| description | | description |
| "Multicast"; | | "Multicast"; |
| container enable { | | container enable { |
| presence "Indicates a enable node is configured."; | | presence "Indicates a enable node is configured."; |
| description | | description |
| "Enable IPv4 Multicast Offloading"; | | "Enable IPv4 Multicast Offloading"; |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| container pbb { | | container pbb { |
| description | | description |
| "Configure Provider Backbone Bridge"; | | "Configure Provider Backbone Bridge"; |
| container core { | | container core { |
| presence "Indicates a core node is configured."; | | presence "Indicates a core node is configured."; |
| description | | description |
| "PBB core bridge domain"; | | "PBB core bridge domain"; |
| container evis { | | container evis { |
| description | | description |
| "Ethernet VPN identifier"; | | "Ethernet VPN identifier"; |
| list evi { | | list evi { |
| key "vpn-id"; | | key "vpn-id"; |
| description | | description |
| "Ethernet VPN identifier"; | | "Ethernet VPN identifier"; |
| leaf vpn-id { | | leaf vpn-id { |
| type uint32 { | | type uint32 { |
| range "1..65534" { | | range "1..65534" { |
| description | | description |
| "Ethernet VPN ID to set"; | | "Ethernet VPN ID to set"; |
| } | | } |
| } | | } |
| description | | description |
| "Ethernet VPN identifier"; | | "Ethernet VPN identifier"; |
| } | | } |
| } | | } |
| } | | } |
| container rewrite { | | container rewrite { |
| description | | description |
| "Set the tag rewriting policy"; | | "Set the tag rewriting policy"; |
| container ingress { | | container ingress { |
| description | | description |
| "Set the tag rewriting policy"; | | "Set the tag rewriting policy"; |
| container tag { | | container tag { |
| description | | description |
| "Set the tag rewriting policy"; | | "Set the tag rewriting policy"; |
| container push { | | container push { |
| description | | description |
| "Push one or more tags"; | | "Push one or more tags"; |
| leaf dot1ad { | | leaf dot1ad { |
| type uint32 { | | type uint32 { |
| range "1..4094" { | | range "1..4094" { |
| description | | description |
| "VLAN ID to push"; | | "VLAN ID to push"; |
| } | | } |
| } | | } |
| description | | description |
| "Push a Dot1ad tag"; | | "Push a Dot1ad tag"; |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| container mac { | | container mac { |
| description | | description |
| "MAC configuration commands"; | | "MAC configuration commands"; |
| container aging { | | container aging { |
| description | | description |
| "MAC-Aging configuration commands"; | | "MAC-Aging configuration commands"; |
| leaf time { | | leaf time { |
| type uint32 { | | type uint32 { |
| range "300..30000" { | | range "300..30000" { |
| description | | description |
| "MAC address aging time in seconds"; | | "MAC address aging time in seconds"; |
| } | | } |
| } | | } |
| description | | description |
| "Mac aging"; | | "Mac aging"; |
| } | | } |
| container type { | | container type { |
| description | | description |
| "MAC address aging type"; | | "MAC address aging type"; |
| container absolute { | | container absolute { |
| must "not(../inactivity)"; | | must "not(../inactivity)"; |
| presence "Indicates a absolute node is configured."; | | presence "Indicates a absolute node is configured."; |
| description | | description |
| "Absolute aging type"; | | "Absolute aging type"; |
| } | | } |
| container inactivity { | | container inactivity { |
| must "not(../absolute)"; | | must "not(../absolute)"; |
| presence "Indicates a inactivity node is configured."; | | presence "Indicates a inactivity node is configured."; |
| description | | description |
| "Inactivity aging type"; | | "Inactivity aging type"; |
| } | | } |
| } | | } |
| } | | } |
| container learning { | | container learning { |
| presence "Indicates a learning node is configured."; | | presence "Indicates a learning node is configured."; |
| description | | description |
| "MAC learning"; | | "MAC learning"; |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Disable MAC learning"; | | "Disable MAC learning"; |
| } | | } |
| } | | } |
| } | | } |
| n | | n | container mmrp-flood-optimization { |
| | | presence "Indicates a mmrp-flood-optimization node is configured."; |
| | | description |
| | | "Enable flood optimization for MMRP"; |
| | | } |
| } | | } |
| container edge { | | container edge { |
| description | | description |
| "PBB edge bridge domain"; | | "PBB edge bridge domain"; |
| list i-sid { | | list i-sid { |
| key "instance-id core-bridge-name"; | | key "instance-id core-bridge-name"; |
| description | | description |
| "Configure Service Instance Identifier"; | | "Configure Service Instance Identifier"; |
| leaf instance-id { | | leaf instance-id { |
| type uint32 { | | type uint32 { |
| range "256..16777214" { | | range "256..16777214" { |
| description | | description |
| "Service Instance ID"; | | "Service Instance ID"; |
| } | | } |
| } | | } |
| description | | description |
| "Configure Service Instance Identifier"; | | "Configure Service Instance Identifier"; |
| } | | } |
| leaf core-bridge-name { | | leaf core-bridge-name { |
| type xr:Cisco-ios-xr-string { | | type xr:Cisco-ios-xr-string { |
| length "1..27" { | | length "1..27" { |
| description | | description |
| "Name of the PBB core bridge domain"; | | "Name of the PBB core bridge domain"; |
| } | | } |
| } | | } |
| description | | description |
| "Specifiy PBB core bridge domain to associate with"; | | "Specifiy PBB core bridge domain to associate with"; |
| } | | } |
| container static-mac-addresses { | | container static-mac-addresses { |
| description | | description |
| "Static customer MAC address"; | | "Static customer MAC address"; |
| list static-mac-address { | | list static-mac-address { |
| key "mac-address"; | | key "mac-address"; |
| description | | description |
| "Static customer MAC address"; | | "Static customer MAC address"; |
| leaf mac-address { | | leaf mac-address { |
| type yang:mac-address; | | type yang:mac-address; |
| description | | description |
| "Static customer MAC address"; | | "Static customer MAC address"; |
| } | | } |
| leaf bmac { | | leaf bmac { |
| type yang:mac-address; | | type yang:mac-address; |
| mandatory true; | | mandatory true; |
| description | | description |
| "Static backbone MAC address to map with"; | | "Static backbone MAC address to map with"; |
| } | | } |
| } | | } |
| } | | } |
| leaf unknown-unicast-bmac { | | leaf unknown-unicast-bmac { |
| type yang:mac-address; | | type yang:mac-address; |
| description | | description |
| "Unknown Unicast backbone MAC address"; | | "Unknown Unicast backbone MAC address"; |
| } | | } |
| container split-horizon { | | container split-horizon { |
| description | | description |
| "Configure split horizon option"; | | "Configure split horizon option"; |
| container group { | | container group { |
| description | | description |
| "Configure split horizon group option"; | | "Configure split horizon group option"; |
| container vfi { | | container vfi { |
| description | | description |
| "Configure split horizon group vfi option"; | | "Configure split horizon group vfi option"; |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Configure split horizon group vfi disable"; | | "Configure split horizon group vfi disable"; |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| container mac { | | container mac { |
| description | | description |
| "MAC configuration commands"; | | "MAC configuration commands"; |
| container aging { | | container aging { |
| description | | description |
| "MAC-Aging configuration commands"; | | "MAC-Aging configuration commands"; |
| leaf time { | | leaf time { |
| type uint32 { | | type uint32 { |
| range "300..30000" { | | range "300..30000" { |
| description | | description |
| "MAC address aging time in seconds"; | | "MAC address aging time in seconds"; |
| } | | } |
| } | | } |
| description | | description |
| "Mac aging"; | | "Mac aging"; |
| } | | } |
| container type { | | container type { |
| description | | description |
| "MAC address aging type"; | | "MAC address aging type"; |
| container absolute { | | container absolute { |
| must "not(../inactivity)"; | | must "not(../inactivity)"; |
| presence "Indicates a absolute node is configured."; | | presence "Indicates a absolute node is configured."; |
| description | | description |
| "Absolute aging type"; | | "Absolute aging type"; |
| } | | } |
| container inactivity { | | container inactivity { |
| must "not(../absolute)"; | | must "not(../absolute)"; |
| presence "Indicates a inactivity node is configured."; | | presence "Indicates a inactivity node is configured."; |
| description | | description |
| "Inactivity aging type"; | | "Inactivity aging type"; |
| } | | } |
| } | | } |
| } | | } |
| container learning { | | container learning { |
| presence "Indicates a learning node is configured."; | | presence "Indicates a learning node is configured."; |
| description | | description |
| "MAC learning"; | | "MAC learning"; |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Disable MAC learning"; | | "Disable MAC learning"; |
| } | | } |
| } | | } |
| container limit { | | container limit { |
| description | | description |
| "MAC-Limit configuration commands"; | | "MAC-Limit configuration commands"; |
| leaf maximum { | | leaf maximum { |
| type uint32 { | | type uint32 { |
| range "0..4294967295" { | | range "0..4294967295" { |
| description | | description |
| "Number of MAC addresses after which MAC limit action is taken"; | | "Number of MAC addresses after which MAC limit action is taken"; |
| } | | } |
| } | | } |
| description | | description |
| "Number of MAC addresses after which MAC limit action is taken"; | | "Number of MAC addresses after which MAC limit action is taken"; |
| } | | } |
| container action { | | container action { |
| description | | description |
| "MAC address limit enforcement action"; | | "MAC address limit enforcement action"; |
| container flood { | | container flood { |
| must | | must |
| "not(../no-flood or ../shutdown | | "not(../no-flood or ../shutdown |
| or ../none)"; | | or ../none)"; |
| presence "Indicates a flood node is configured."; | | presence "Indicates a flood node is configured."; |
| description | | description |
| "Stop learning but continue flooding"; | | "Stop learning but continue flooding"; |
| } | | } |
| container no-flood { | | container no-flood { |
| must | | must |
| "not(../flood or ../shutdown | | "not(../flood or ../shutdown |
| or ../none)"; | | or ../none)"; |
| presence "Indicates a no-flood node is configured."; | | presence "Indicates a no-flood node is configured."; |
| description | | description |
| "Stop learning and stop flooding"; | | "Stop learning and stop flooding"; |
| } | | } |
| container shutdown { | | container shutdown { |
| must | | must |
| "not(../flood or ../no-flood | | "not(../flood or ../no-flood |
| or ../none)"; | | or ../none)"; |
| presence "Indicates a shutdown node is configured."; | | presence "Indicates a shutdown node is configured."; |
| description | | description |
| "Stop forwarding"; | | "Stop forwarding"; |
| } | | } |
| container none { | | container none { |
| must | | must |
| "not(../flood or ../no-flood | | "not(../flood or ../no-flood |
| or ../shutdown)"; | | or ../shutdown)"; |
| presence "Indicates a none node is configured."; | | presence "Indicates a none node is configured."; |
| description | | description |
| "No action"; | | "No action"; |
| } | | } |
| } | | } |
| container notification { | | container notification { |
| description | | description |
| "MAC address limit notification action"; | | "MAC address limit notification action"; |
| container trap { | | container trap { |
| must | | must |
| "not(../both or ../none | | "not(../both or ../none |
| or ../syslog)"; | | or ../syslog)"; |
| presence "Indicates a trap node is configured."; | | presence "Indicates a trap node is configured."; |
| description | | description |
| "Generate SNMP trap"; | | "Generate SNMP trap"; |
| } | | } |
| container both { | | container both { |
| must | | must |
| "not(../trap or ../none | | "not(../trap or ../none |
| or ../syslog)"; | | or ../syslog)"; |
| presence "Indicates a both node is configured."; | | presence "Indicates a both node is configured."; |
| description | | description |
| "Generate syslog message and SNMP trap"; | | "Generate syslog message and SNMP trap"; |
| } | | } |
| container none { | | container none { |
| must | | must |
| "not(../trap or ../both | | "not(../trap or ../both |
| or ../syslog)"; | | or ../syslog)"; |
| presence "Indicates a none node is configured."; | | presence "Indicates a none node is configured."; |
| description | | description |
| "No notification"; | | "No notification"; |
| } | | } |
| container syslog { | | container syslog { |
| must | | must |
| "not(../trap or ../both | | "not(../trap or ../both |
| or ../none)"; | | or ../none)"; |
| presence "Indicates a syslog node is configured."; | | presence "Indicates a syslog node is configured."; |
| description | | description |
| "Generate syslog message"; | | "Generate syslog message"; |
| } | | } |
| } | | } |
| } | | } |
| container secure { | | container secure { |
| presence "Indicates a secure node is configured."; | | presence "Indicates a secure node is configured."; |
| description | | description |
| "MAC Secure configuration commands"; | | "MAC Secure configuration commands"; |
| container logging { | | container logging { |
| presence "Indicates a logging node is configured."; | | presence "Indicates a logging node is configured."; |
| description | | description |
| "Logging"; | | "Logging"; |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "disable logging"; | | "disable logging"; |
| } | | } |
| } | | } |
| container action { | | container action { |
| description | | description |
| "MAC secure enforcement action"; | | "MAC secure enforcement action"; |
| container none { | | container none { |
| must "not(../shutdown or ../restrict)"; | | must "not(../shutdown or ../restrict)"; |
| presence "Indicates a none node is configured."; | | presence "Indicates a none node is configured."; |
| description | | description |
| "Forward the violating packet and allow the MAC to be relearned"; | | "Forward the violating packet and allow the MAC to be relearned"; |
| } | | } |
| container shutdown { | | container shutdown { |
| must "not(../none or ../restrict)"; | | must "not(../none or ../restrict)"; |
| presence "Indicates a shutdown node is configured."; | | presence "Indicates a shutdown node is configured."; |
| description | | description |
| "Shutdown the violating bridge port"; | | "Shutdown the violating bridge port"; |
| } | | } |
| container restrict { | | container restrict { |
| must "not(../none or ../shutdown)"; | | must "not(../none or ../shutdown)"; |
| presence "Indicates a restrict node is configured."; | | presence "Indicates a restrict node is configured."; |
| description | | description |
| "Drop the violating packet and not allow the MAC to be relearned"; | | "Drop the violating packet and not allow the MAC to be relearned"; |
| } | | } |
| } | | } |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Disable MAC Secure"; | | "Disable MAC Secure"; |
| } | | } |
| container accept-shutdown { | | container accept-shutdown { |
| presence "Indicates a accept-shutdown node is configured."; | | presence "Indicates a accept-shutdown node is configured."; |
| description | | description |
| "Accept shutdown action to be taken due to MAC violation"; | | "Accept shutdown action to be taken due to MAC violation"; |
| } | | } |
| } | | } |
| } | | } |
| container dhcp { | | container dhcp { |
| presence "Indicates a dhcp node is configured."; | | presence "Indicates a dhcp node is configured."; |
| description | | description |
| "DHCP protocol"; | | "DHCP protocol"; |
| container ipv4 { | | container ipv4 { |
| description | | description |
| "IP Version 4"; | | "IP Version 4"; |
| container snoop { | | container snoop { |
| presence "Indicates a snoop node is configured."; | | presence "Indicates a snoop node is configured."; |
| description | | description |
| "Set the snooping profile"; | | "Set the snooping profile"; |
| leaf profile { | | leaf profile { |
| type xr:Cisco-ios-xr-string { | | type xr:Cisco-ios-xr-string { |
| length "1..32" { | | length "1..32" { |
| description | | description |
| "DHCPv4 Snooping profile name"; | | "DHCPv4 Snooping profile name"; |
| } | | } |
| } | | } |
| description | | description |
| "Attach a DHCP profile"; | | "Attach a DHCP profile"; |
| } | | } |
| } | | } |
| container none { | | container none { |
| presence "Indicates a none node is configured."; | | presence "Indicates a none node is configured."; |
| description | | description |
| "Disable DHCP snooping"; | | "Disable DHCP snooping"; |
| } | | } |
| } | | } |
| } | | } |
| container igmp { | | container igmp { |
| description | | description |
| "IGMP protocol"; | | "IGMP protocol"; |
| container snooping { | | container snooping { |
| description | | description |
| "Set the snooping profile"; | | "Set the snooping profile"; |
| leaf profile { | | leaf profile { |
| type xr:Cisco-ios-xr-string { | | type xr:Cisco-ios-xr-string { |
| length "1..32" { | | length "1..32" { |
| description | | description |
| "IGMP Snooping profile name"; | | "IGMP Snooping profile name"; |
| } | | } |
| } | | } |
| description | | description |
| "Attach an IGMP profile"; | | "Attach an IGMP profile"; |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| leaf mtu { | | leaf mtu { |
| type uint32 { | | type uint32 { |
| range "46..65535" { | | range "46..65535" { |
| description | | description |
| "Maximum transmission unit size (payload) in bytes"; | | "Maximum transmission unit size (payload) in bytes"; |
| } | | } |
| } | | } |
| description | | description |
| "Maximum transmission unit (payload) for this Bridge Domain"; | | "Maximum transmission unit (payload) for this Bridge Domain"; |
| } | | } |
| container coupled-mode { | | container coupled-mode { |
| if-feature "l2vpn_is_cli_supported"; | | if-feature "l2vpn_is_cli_supported"; |
| presence "Indicates a coupled-mode node is configured."; | | presence "Indicates a coupled-mode node is configured."; |
| description | | description |
| "Enable coupled mode for the Bridge Domain"; | | "Enable coupled mode for the Bridge Domain"; |
| } | | } |
| container transport-mode { | | container transport-mode { |
| description | | description |
| "Bridge domain transport mode"; | | "Bridge domain transport mode"; |
| container vlan { | | container vlan { |
| description | | description |
| "Vlan tagged mode"; | | "Vlan tagged mode"; |
| container passthrough { | | container passthrough { |
| presence "Indicates a passthrough node is configured."; | | presence "Indicates a passthrough node is configured."; |
| description | | description |
| "passthrough incoming tags"; | | "passthrough incoming tags"; |
| } | | } |
| } | | } |
| } | | } |
| container flooding { | | container flooding { |
| description | | description |
| "Traffic flooding"; | | "Traffic flooding"; |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Disable flooding"; | | "Disable flooding"; |
| } | | } |
| n | | n | container unknown-unicast { |
| | | description |
| | | "Traffic flooding unknown unicast"; |
| | | container disable { |
| | | presence "Indicates a disable node is configured."; |
| | | description |
| | | "Disable Unknown Unicast flooding"; |
| | | } |
| | | } |
| } | | } |
| container dynamic-arp-inspection { | | container dynamic-arp-inspection { |
| presence "Indicates a dynamic-arp-inspection node is configured."; | | presence "Indicates a dynamic-arp-inspection node is configured."; |
| description | | description |
| "Dynamic ARP Inspection"; | | "Dynamic ARP Inspection"; |
| container logging { | | container logging { |
| presence "Indicates a logging node is configured."; | | presence "Indicates a logging node is configured."; |
| description | | description |
| "Enable Logging"; | | "Enable Logging"; |
| } | | } |
| container address-validation { | | container address-validation { |
| presence "Indicates a address-validation node is configured."; | | presence "Indicates a address-validation node is configured."; |
| description | | description |
| "Address Validation Configurations"; | | "Address Validation Configurations"; |
| container src-mac { | | container src-mac { |
| presence "Indicates a src-mac node is configured."; | | presence "Indicates a src-mac node is configured."; |
| description | | description |
| "Match Source MAC Address"; | | "Match Source MAC Address"; |
| } | | } |
| container dst-mac { | | container dst-mac { |
| presence "Indicates a dst-mac node is configured."; | | presence "Indicates a dst-mac node is configured."; |
| description | | description |
| "Match Destination MAC Address"; | | "Match Destination MAC Address"; |
| } | | } |
| container ipv4 { | | container ipv4 { |
| presence "Indicates a ipv4 node is configured."; | | presence "Indicates a ipv4 node is configured."; |
| description | | description |
| "Match IPv4 Address"; | | "Match IPv4 Address"; |
| } | | } |
| } | | } |
| } | | } |
| container ip-source-guard { | | container ip-source-guard { |
| presence "Indicates a ip-source-guard node is configured."; | | presence "Indicates a ip-source-guard node is configured."; |
| description | | description |
| "IP Source Guard"; | | "IP Source Guard"; |
| container logging { | | container logging { |
| presence "Indicates a logging node is configured."; | | presence "Indicates a logging node is configured."; |
| description | | description |
| "Enable Logging"; | | "Enable Logging"; |
| } | | } |
| } | | } |
| container dhcp { | | container dhcp { |
| description | | description |
| "DHCP protocol"; | | "DHCP protocol"; |
| container ipv4 { | | container ipv4 { |
| description | | description |
| "IP Version 4"; | | "IP Version 4"; |
| container snoop { | | container snoop { |
| description | | description |
| "Set the snooping profile"; | | "Set the snooping profile"; |
| leaf profile { | | leaf profile { |
| type xr:Cisco-ios-xr-string { | | type xr:Cisco-ios-xr-string { |
| length "1..32" { | | length "1..32" { |
| description | | description |
| "DHCPv4 Snooping profile name"; | | "DHCPv4 Snooping profile name"; |
| } | | } |
| } | | } |
| description | | description |
| "Attach a DHCP profile"; | | "Attach a DHCP profile"; |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| container igmp { | | container igmp { |
| description | | description |
| "IGMP protocol"; | | "IGMP protocol"; |
| container snooping { | | container snooping { |
| description | | description |
| "Set the snooping profile"; | | "Set the snooping profile"; |
| leaf profile { | | leaf profile { |
| type xr:Cisco-ios-xr-string { | | type xr:Cisco-ios-xr-string { |
| length "1..32" { | | length "1..32" { |
| description | | description |
| "IGMP Snooping profile name"; | | "IGMP Snooping profile name"; |
| } | | } |
| } | | } |
| description | | description |
| "Attach an IGMP profile"; | | "Attach an IGMP profile"; |
| } | | } |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "disable IGMP snooping for the current bridge domain"; | | "disable IGMP snooping for the current bridge domain"; |
| } | | } |
| } | | } |
| } | | } |
| container mld { | | container mld { |
| description | | description |
| "MLD protocol"; | | "MLD protocol"; |
| container snooping { | | container snooping { |
| description | | description |
| "Set the snooping profile"; | | "Set the snooping profile"; |
| leaf profile { | | leaf profile { |
| type xr:Cisco-ios-xr-string { | | type xr:Cisco-ios-xr-string { |
| length "1..32" { | | length "1..32" { |
| description | | description |
| "MLD Snooping profile name"; | | "MLD Snooping profile name"; |
| } | | } |
| } | | } |
| description | | description |
| "Attach a MLD profile"; | | "Attach a MLD profile"; |
| } | | } |
| } | | } |
| } | | } |
| container storm-control { | | container storm-control { |
| description | | description |
| "Storm Control"; | | "Storm Control"; |
| container broadcast { | | container broadcast { |
| description | | description |
| "Broadcast Storm Control"; | | "Broadcast Storm Control"; |
| leaf pps { | | leaf pps { |
| type uint32 { | | type uint32 { |
| range "1..160000" { | | range "1..160000" { |
| description | | description |
| "storm control pps value"; | | "storm control pps value"; |
| } | | } |
| } | | } |
| description | | description |
| "Set the storm control pps"; | | "Set the storm control pps"; |
| } | | } |
| leaf kbps { | | leaf kbps { |
| type uint32 { | | type uint32 { |
| range "64..1280000" { | | range "64..1280000" { |
| description | | description |
| "storm control kbps value"; | | "storm control kbps value"; |
| } | | } |
| } | | } |
| description | | description |
| "Set the storm control kbps"; | | "Set the storm control kbps"; |
| } | | } |
| } | | } |
| container multicast { | | container multicast { |
| description | | description |
| "Multicast Storm Control"; | | "Multicast Storm Control"; |
| leaf pps { | | leaf pps { |
| type uint32 { | | type uint32 { |
| range "1..160000" { | | range "1..160000" { |
| description | | description |
| "storm control pps value"; | | "storm control pps value"; |
| } | | } |
| } | | } |
| description | | description |
| "Set the storm control pps"; | | "Set the storm control pps"; |
| } | | } |
| leaf kbps { | | leaf kbps { |
| type uint32 { | | type uint32 { |
| range "64..1280000" { | | range "64..1280000" { |
| description | | description |
| "storm control kbps value"; | | "storm control kbps value"; |
| } | | } |
| } | | } |
| description | | description |
| "Set the storm control kbps"; | | "Set the storm control kbps"; |
| } | | } |
| } | | } |
| container unknown-unicast { | | container unknown-unicast { |
| description | | description |
| "Unknown-unicast Storm Control"; | | "Unknown-unicast Storm Control"; |
| leaf pps { | | leaf pps { |
| type uint32 { | | type uint32 { |
| range "1..160000" { | | range "1..160000" { |
| description | | description |
| "storm control pps value"; | | "storm control pps value"; |
| } | | } |
| } | | } |
| description | | description |
| "Set the storm control pps"; | | "Set the storm control pps"; |
| } | | } |
| leaf kbps { | | leaf kbps { |
| type uint32 { | | type uint32 { |
| range "64..1280000" { | | range "64..1280000" { |
| description | | description |
| "storm control kbps value"; | | "storm control kbps value"; |
| } | | } |
| } | | } |
| description | | description |
| "Set the storm control kbps"; | | "Set the storm control kbps"; |
| } | | } |
| } | | } |
| } | | } |
| container interface { | | container interface { |
| description | | description |
| "Assign interface to bridge domain"; | | "Assign interface to bridge domain"; |
| n | list interface { | n | |
| key "interface-name"; | | |
| description | | |
| "Specify interface name"; | | |
| leaf interface-name { | | |
| type xr:Interface-name; | | |
| description | | |
| "Specify interface name"; | | |
| } | | |
| container flooding { | | |
| presence "Indicates a flooding node is configured."; | | |
| description | | |
| "Traffic flooding"; | | |
| container disable { | | |
| presence "Indicates a disable node is configured."; | | |
| description | | |
| "Disable flooding"; | | |
| } | | |
| } | | |
| container storm-control { | | |
| description | | |
| "Storm Control"; | | |
| container broadcast { | | |
| description | | |
| "Broadcast Storm Control"; | | |
| leaf pps { | | |
| type uint32 { | | |
| range "1..160000" { | | |
| description | | |
| "storm control pps value"; | | |
| } | | |
| } | | |
| description | | |
| "Set the storm control pps"; | | |
| } | | |
| leaf kbps { | | |
| type uint32 { | | |
| range "64..1280000" { | | |
| description | | |
| "storm control kbps value"; | | |
| } | | |
| } | | |
| description | | |
| "Set the storm control kbps"; | | |
| } | | |
| } | | |
| container multicast { | | |
| description | | |
| "Multicast Storm Control"; | | |
| leaf pps { | | |
| type uint32 { | | |
| range "1..160000" { | | |
| description | | |
| "storm control pps value"; | | |
| } | | |
| } | | |
| description | | |
| "Set the storm control pps"; | | |
| } | | |
| leaf kbps { | | |
| type uint32 { | | |
| range "64..1280000" { | | |
| description | | |
| "storm control kbps value"; | | |
| } | | |
| } | | |
| description | | |
| "Set the storm control kbps"; | | |
| } | | |
| } | | |
| container unknown-unicast { | | |
| description | | |
| "Unknown-unicast Storm Control"; | | |
| leaf pps { | | |
| type uint32 { | | |
| range "1..160000" { | | |
| description | | |
| "storm control pps value"; | | |
| } | | |
| } | | |
| description | | |
| "Set the storm control pps"; | | |
| } | | |
| leaf kbps { | | |
| type uint32 { | | |
| range "64..1280000" { | | |
| description | | |
| "storm control kbps value"; | | |
| } | | |
| } | | |
| description | | |
| "Set the storm control kbps"; | | |
| } | | |
| } | | |
| } | | |
| container mac { | | |
| description | | |
| "MAC configuration commands"; | | |
| container aging { | | |
| description | | |
| "MAC-Aging configuration commands"; | | |
| leaf time { | | |
| type uint32 { | | |
| range "300..30000" { | | |
| description | | |
| "MAC address aging time in seconds"; | | |
| } | | |
| } | | |
| description | | |
| "Mac aging"; | | |
| } | | |
| container type { | | |
| description | | |
| "MAC address aging type"; | | |
| container absolute { | | |
| must "not(../inactivity)"; | | |
| presence "Indicates a absolute node is configured."; | | |
| description | | |
| "Absolute aging type"; | | |
| } | | |
| container inactivity { | | |
| must "not(../absolute)"; | | |
| presence "Indicates a inactivity node is configured."; | | |
| description | | |
| "Inactivity aging type"; | | |
| } | | |
| } | | |
| } | | |
| container learning { | | |
| presence "Indicates a learning node is configured."; | | |
| description | | |
| "MAC learning"; | | |
| container disable { | | |
| presence "Indicates a disable node is configured."; | | |
| description | | |
| "Disable MAC learning"; | | |
| } | | |
| } | | |
| container limit { | | |
| description | | |
| "MAC-Limit configuration commands"; | | |
| leaf maximum { | | |
| type uint32 { | | |
| range "0..4294967295" { | | |
| description | | |
| "Number of MAC addresses after which MAC limit action is taken"; | | |
| } | | |
| } | | |
| description | | |
| "Number of MAC addresses after which MAC limit action is taken"; | | |
| } | | |
| container action { | | |
| description | | |
| "MAC address limit enforcement action"; | | |
| container flood { | | |
| must | | |
| "not(../no-flood or ../shutdown | | |
| or ../none)"; | | |
| presence "Indicates a flood node is configured."; | | |
| description | | |
| "Stop learning but continue flooding"; | | |
| } | | |
| container no-flood { | | |
| must | | |
| "not(../flood or ../shutdown | | |
| or ../none)"; | | |
| presence "Indicates a no-flood node is configured."; | | |
| description | | |
| "Stop learning and stop flooding"; | | |
| } | | |
| container shutdown { | | |
| must | | |
| "not(../flood or ../no-flood | | |
| or ../none)"; | | |
| presence "Indicates a shutdown node is configured."; | | |
| description | | |
| "Stop forwarding"; | | |
| } | | |
| container none { | | |
| must | | |
| "not(../flood or ../no-flood | | |
| or ../shutdown)"; | | |
| presence "Indicates a none node is configured."; | | |
| description | | |
| "No action"; | | |
| } | | |
| } | | |
| container notification { | | |
| description | | |
| "MAC address limit notification action"; | | |
| container trap { | | |
| must | | |
| "not(../both or ../none | | |
| or ../syslog)"; | | |
| presence "Indicates a trap node is configured."; | | |
| description | | |
| "Generate SNMP trap"; | | |
| } | | |
| container both { | | |
| must | | |
| "not(../trap or ../none | | |
| or ../syslog)"; | | |
| presence "Indicates a both node is configured."; | | |
| description | | |
| "Generate syslog message and SNMP trap"; | | |
| } | | |
| container none { | | |
| must | | |
| "not(../trap or ../both | | |
| or ../syslog)"; | | |
| presence "Indicates a none node is configured."; | | |
| description | | |
| "No notification"; | | |
| } | | |
| container syslog { | | |
| must | | |
| "not(../trap or ../both | | |
| or ../none)"; | | |
| presence "Indicates a syslog node is configured."; | | |
| description | | |
| "Generate syslog message"; | | |
| } | | |
| } | | |
| } | | |
| container port-down { | | |
| description | | |
| "Configure action when port goes down"; | | |
| container flush { | | |
| presence "Indicates a flush node is configured."; | | |
| description | | |
| "Configure MAC flush when port goes down"; | | |
| container disable { | | |
| presence "Indicates a disable node is configured."; | | |
| description | | |
| "Disable MAC flush when port goes down"; | | |
| } | | |
| } | | |
| } | | |
| container secure { | | |
| presence "Indicates a secure node is configured."; | | |
| description | | |
| "MAC Secure configuration commands"; | | |
| container logging { | | |
| presence "Indicates a logging node is configured."; | | |
| description | | |
| "Logging"; | | |
| container disable { | | |
| presence "Indicates a disable node is configured."; | | |
| description | | |
| "disable logging"; | | |
| } | | |
| } | | |
| container action { | | |
| description | | |
| "MAC secure enforcement action"; | | |
| container none { | | |
| must "not(../shutdown or ../restrict)"; | | |
| presence "Indicates a none node is configured."; | | |
| description | | |
| "Forward the violating packet and allow the MAC to be relearned"; | | |
| } | | |
| container shutdown { | | |
| must "not(../none or ../restrict)"; | | |
| presence "Indicates a shutdown node is configured."; | | |
| description | | |
| "Shutdown the violating bridge port"; | | |
| } | | |
| container restrict { | | |
| must "not(../none or ../shutdown)"; | | |
| presence "Indicates a restrict node is configured."; | | |
| description | | |
| "Drop the violating packet and not allow the MAC to be relearned"; | | |
| } | | |
| } | | |
| container disable { | | |
| presence "Indicates a disable node is configured."; | | |
| description | | |
| "Disable MAC Secure"; | | |
| } | | |
| } | | |
| } | | |
| container dynamic-arp-inspection { | | |
| presence "Indicates a dynamic-arp-inspection node is configured."; | | |
| description | | |
| "Dynamic ARP Inspection"; | | |
| container logging { | | |
| presence "Indicates a logging node is configured."; | | |
| description | | |
| "Logging"; | | |
| container disable { | | |
| presence "Indicates a disable node is configured."; | | |
| description | | |
| "disable logging"; | | |
| } | | |
| } | | |
| container address-validation { | | |
| presence "Indicates a address-validation node is configured."; | | |
| description | | |
| "Address Validation Configurations"; | | |
| container src-mac { | | |
| presence "Indicates a src-mac node is configured."; | | |
| description | | |
| "Match Source MAC Address"; | | |
| container disable { | | |
| presence "Indicates a disable node is configured."; | | |
| description | | |
| "disable Source MAC Address check"; | | |
| } | | |
| } | | |
| container dst-mac { | | |
| presence "Indicates a dst-mac node is configured."; | | |
| description | | |
| "Match Destination MAC Address"; | | |
| container disable { | | |
| presence "Indicates a disable node is configured."; | | |
| description | | |
| "disable Destimation MAC Address check"; | | |
| } | | |
| } | | |
| container ipv4 { | | |
| presence "Indicates a ipv4 node is configured."; | | |
| description | | |
| "Match IPv4 Address"; | | |
| container disable { | | |
| presence "Indicates a disable node is configured."; | | |
| description | | |
| "disable IPV4 Address check"; | | |
| } | | |
| } | | |
| } | | |
| container disable { | | |
| presence "Indicates a disable node is configured."; | | |
| description | | |
| "Disable Dynamic Arp Inspection"; | | |
| } | | |
| } | | |
| container ip-source-guard { | | |
| presence "Indicates a ip-source-guard node is configured."; | | |
| description | | |
| "IP Source Guard"; | | |
| container logging { | | |
| presence "Indicates a logging node is configured."; | | |
| description | | |
| "Logging"; | | |
| container disable { | | |
| presence "Indicates a disable node is configured."; | | |
| description | | |
| "disable logging"; | | |
| } | | |
| } | | |
| container disable { | | |
| presence "Indicates a disable node is configured."; | | |
| description | | |
| "Disable IP Source Guard"; | | |
| } | | |
| } | | |
| container dhcp { | | |
| if-feature "l2vpn_is_cli_supported"; | | |
| presence "Indicates a dhcp node is configured."; | | |
| description | | |
| "DHCP protocol"; | | |
| container ipv4 { | | |
| description | | |
| "IP Version 4"; | | |
| container snoop { | | |
| presence "Indicates a snoop node is configured."; | | |
| description | | |
| "Set the snooping profile"; | | |
| leaf profile { | | |
| type xr:Cisco-ios-xr-string { | | |
| length "1..32" { | | |
| description | | |
| "DHCPv4 Snooping profile name"; | | |
| } | | |
| } | | |
| mandatory true; | | |
| description | | |
| "Attach a DHCP profile"; | | |
| } | | |
| } | | |
| container none { | | |
| presence "Indicates a none node is configured."; | | |
| description | | |
| "Disable DHCP snooping"; | | |
| } | | |
| } | | |
| } | | |
| container static-mac-addresses { | | |
| description | | |
| "Static MAC address"; | | |
| list static-mac-address { | | |
| key "mac-address"; | | |
| description | | |
| "Static MAC address"; | | |
| leaf mac-address { | | |
| type yang:mac-address; | | |
| description | | |
| "Static MAC address"; | | |
| } | | |
| } | | |
| } | | |
| container split-horizon { | | |
| description | | |
| "Configure split horizon group"; | | |
| container group { | | |
| presence "Indicates a group node is configured."; | | |
| description | | |
| "Configure split horizon group"; | | |
| } | | |
| } | | |
| container igmp { | | |
| description | | |
| "IGMP protocol"; | | |
| container snooping { | | |
| description | | |
| "Set the snooping profile"; | | |
| leaf profile { | | |
| type xr:Cisco-ios-xr-string { | | |
| length "1..32" { | | |
| description | | |
| "IGMP Snooping profile name"; | | |
| } | | |
| } | | |
| description | | |
| "Attach an IGMP profile"; | | |
| } | | |
| } | | |
| } | | |
| container mld { | | |
| description | | |
| "MLD protocol"; | | |
| container snooping { | | |
| description | | |
| "Set the snooping profile"; | | |
| leaf profile { | | |
| type xr:Cisco-ios-xr-string { | | |
| length "1..32" { | | |
| description | | |
| "MLD Snooping profile name"; | | |
| } | | |
| } | | |
| description | | |
| "Attach a MLD profile"; | | |
| } | | |
| } | | |
| } | | |
| } | | |
| } | | } |
| container routed { | | container routed { |
| description | | description |
| "Bridge domain L3 interface"; | | "Bridge domain L3 interface"; |
| list interface { | | list interface { |
| key "interface-name"; | | key "interface-name"; |
| description | | description |
| "Assign interface to bridge domain"; | | "Assign interface to bridge domain"; |
| leaf interface-name { | | leaf interface-name { |
| type xr:Interface-name; | | type xr:Interface-name; |
| description | | description |
| "Assign interface to bridge domain"; | | "Assign interface to bridge domain"; |
| } | | } |
| container split-horizon { | | container split-horizon { |
| description | | description |
| "Configure split-horizon group"; | | "Configure split-horizon group"; |
| container group { | | container group { |
| description | | description |
| "Configure split-horizon group"; | | "Configure split-horizon group"; |
| container core { | | container core { |
| presence "Indicates a core node is configured."; | | presence "Indicates a core node is configured."; |
| description | | description |
| "Configure BVI under SHG 1"; | | "Configure BVI under SHG 1"; |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| container shutdown { | | container shutdown { |
| presence "Indicates a shutdown node is configured."; | | presence "Indicates a shutdown node is configured."; |
| description | | description |
| "shutdown the Bridge Domain"; | | "shutdown the Bridge Domain"; |
| } | | } |
| container mac { | | container mac { |
| description | | description |
| "MAC configuration commands"; | | "MAC configuration commands"; |
| container aging { | | container aging { |
| if-feature "l2vpn_is_cli_supported"; | | if-feature "l2vpn_is_cli_supported"; |
| description | | description |
| "MAC-Aging configuration commands"; | | "MAC-Aging configuration commands"; |
| leaf time { | | leaf time { |
| type uint32 { | | type uint32 { |
| range "300..30000" { | | range "300..30000" { |
| description | | description |
| "MAC address aging time in seconds"; | | "MAC address aging time in seconds"; |
| } | | } |
| } | | } |
| description | | description |
| "Mac aging"; | | "Mac aging"; |
| } | | } |
| container type { | | container type { |
| description | | description |
| "MAC address aging type"; | | "MAC address aging type"; |
| container absolute { | | container absolute { |
| presence "Indicates a absolute node is configured."; | | presence "Indicates a absolute node is configured."; |
| description | | description |
| "Absolute aging type"; | | "Absolute aging type"; |
| } | | } |
| } | | } |
| } | | } |
| container static-addresses { | | container static-addresses { |
| description | | description |
| "Static MAC address for filtering"; | | "Static MAC address for filtering"; |
| list static-address { | | list static-address { |
| must "drop"; | | must "drop"; |
| key "mac-address"; | | key "mac-address"; |
| description | | description |
| "Static MAC address for filtering"; | | "Static MAC address for filtering"; |
| leaf mac-address { | | leaf mac-address { |
| type yang:mac-address; | | type yang:mac-address; |
| description | | description |
| "Static MAC address for filtering"; | | "Static MAC address for filtering"; |
| } | | } |
| container drop { | | container drop { |
| presence "Indicates a drop node is configured."; | | presence "Indicates a drop node is configured."; |
| description | | description |
| "Drop matching packets"; | | "Drop matching packets"; |
| } | | } |
| } | | } |
| } | | } |
| container learning { | | container learning { |
| description | | description |
| "MAC learning"; | | "MAC learning"; |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Disable MAC learning"; | | "Disable MAC learning"; |
| } | | } |
| } | | } |
| container withdraw { | | container withdraw { |
| description | | description |
| "MAC withdraw"; | | "MAC withdraw"; |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Disable MAC withdraw"; | | "Disable MAC withdraw"; |
| } | | } |
| container access-pw { | | container access-pw { |
| description | | description |
| "MAC withdraw sent to Access PWs "; | | "MAC withdraw sent to Access PWs "; |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Disable MAC withdraw on Access PW"; | | "Disable MAC withdraw on Access PW"; |
| } | | } |
| } | | } |
| container relay { | | container relay { |
| presence "Indicates a relay node is configured."; | | presence "Indicates a relay node is configured."; |
| description | | description |
| "MAC withdraw relayed to Access PWs "; | | "MAC withdraw relayed to Access PWs "; |
| } | | } |
| container state-down { | | container state-down { |
| must "not(../optimize)"; | | must "not(../optimize)"; |
| presence "Indicates a state-down node is configured."; | | presence "Indicates a state-down node is configured."; |
| description | | description |
| "MAC withdraw sent on bridge port down"; | | "MAC withdraw sent on bridge port down"; |
| } | | } |
| container optimize { | | container optimize { |
| must "not(../state-down)"; | | must "not(../state-down)"; |
| presence "Indicates a optimize node is configured."; | | presence "Indicates a optimize node is configured."; |
| description | | description |
| "Optimized LDP MAC withdraw (when port goes down)"; | | "Optimized LDP MAC withdraw (when port goes down)"; |
| } | | } |
| } | | } |
| container limit { | | container limit { |
| description | | description |
| "MAC-Limit configuration commands"; | | "MAC-Limit configuration commands"; |
| leaf maximum { | | leaf maximum { |
| type uint32 { | | type uint32 { |
| range "0..4294967295" { | | range "0..4294967295" { |
| description | | description |
| "Number of MAC addresses after which MAC limit action is taken"; | | "Number of MAC addresses after which MAC limit action is taken"; |
| } | | } |
| } | | } |
| description | | description |
| "Number of MAC addresses after which MAC limit action is taken"; | | "Number of MAC addresses after which MAC limit action is taken"; |
| } | | } |
| container action { | | container action { |
| description | | description |
| "MAC address limit enforcement action"; | | "MAC address limit enforcement action"; |
| container flood { | | container flood { |
| must "not(../no-flood or ../shutdown)"; | | must "not(../no-flood or ../shutdown)"; |
| presence "Indicates a flood node is configured."; | | presence "Indicates a flood node is configured."; |
| description | | description |
| "Stop learning but continue flooding"; | | "Stop learning but continue flooding"; |
| } | | } |
| container no-flood { | | container no-flood { |
| must "not(../flood or ../shutdown)"; | | must "not(../flood or ../shutdown)"; |
| presence "Indicates a no-flood node is configured."; | | presence "Indicates a no-flood node is configured."; |
| description | | description |
| "Stop learning and stop flooding"; | | "Stop learning and stop flooding"; |
| } | | } |
| container shutdown { | | container shutdown { |
| must "not(../flood or ../no-flood)"; | | must "not(../flood or ../no-flood)"; |
| presence "Indicates a shutdown node is configured."; | | presence "Indicates a shutdown node is configured."; |
| description | | description |
| "Stop forwarding"; | | "Stop forwarding"; |
| } | | } |
| } | | } |
| container notification { | | container notification { |
| description | | description |
| "MAC address limit notification action"; | | "MAC address limit notification action"; |
| container trap { | | container trap { |
| must "not(../both or ../none)"; | | must "not(../both or ../none)"; |
| presence "Indicates a trap node is configured."; | | presence "Indicates a trap node is configured."; |
| description | | description |
| "Generate SNMP trap"; | | "Generate SNMP trap"; |
| } | | } |
| container both { | | container both { |
| must "not(../trap or ../none)"; | | must "not(../trap or ../none)"; |
| presence "Indicates a both node is configured."; | | presence "Indicates a both node is configured."; |
| description | | description |
| "Generate syslog message and SNMP trap"; | | "Generate syslog message and SNMP trap"; |
| } | | } |
| container none { | | container none { |
| must "not(../trap or ../both)"; | | must "not(../trap or ../both)"; |
| presence "Indicates a none node is configured."; | | presence "Indicates a none node is configured."; |
| description | | description |
| "No notification"; | | "No notification"; |
| } | | } |
| } | | } |
| } | | } |
| container port-down { | | container port-down { |
| description | | description |
| "Configure action when port goes down"; | | "Configure action when port goes down"; |
| container flush { | | container flush { |
| description | | description |
| "Configure MAC flush when port goes down"; | | "Configure MAC flush when port goes down"; |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Disable MAC flush when port goes down"; | | "Disable MAC flush when port goes down"; |
| } | | } |
| } | | } |
| } | | } |
| container secure { | | container secure { |
| presence "Indicates a secure node is configured."; | | presence "Indicates a secure node is configured."; |
| description | | description |
| "MAC Secure configuration commands"; | | "MAC Secure configuration commands"; |
| container logging { | | container logging { |
| presence "Indicates a logging node is configured."; | | presence "Indicates a logging node is configured."; |
| description | | description |
| "Enable Logging"; | | "Enable Logging"; |
| } | | } |
| container threshold { | | container threshold { |
| presence "Indicates a threshold node is configured."; | | presence "Indicates a threshold node is configured."; |
| description | | description |
| "Threshold based mac secure"; | | "Threshold based mac secure"; |
| } | | } |
| container action { | | container action { |
| description | | description |
| "MAC secure enforcement action"; | | "MAC secure enforcement action"; |
| container none { | | container none { |
| must "not(../shutdown)"; | | must "not(../shutdown)"; |
| presence "Indicates a none node is configured."; | | presence "Indicates a none node is configured."; |
| description | | description |
| "Forward the violating packet and allow the MAC to be relearned"; | | "Forward the violating packet and allow the MAC to be relearned"; |
| } | | } |
| container shutdown { | | container shutdown { |
| must "not(../none)"; | | must "not(../none)"; |
| presence "Indicates a shutdown node is configured."; | | presence "Indicates a shutdown node is configured."; |
| description | | description |
| "Shutdown the violating bridge port"; | | "Shutdown the violating bridge port"; |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| leaf description { | | leaf description { |
| type string { | | type string { |
| length "1..64" { | | length "1..64" { |
| description | | description |
| "Bridge-Domain description string"; | | "Bridge-Domain description string"; |
| } | | } |
| } | | } |
| description | | description |
| "Description for Bridge-Domain"; | | "Description for Bridge-Domain"; |
| } | | } |
| container member { | | container member { |
| description | | description |
| "Bridge domain member"; | | "Bridge domain member"; |
| container vnis { | | container vnis { |
| description | | description |
| "Assign VxLAN Network Identifier to bridge domain"; | | "Assign VxLAN Network Identifier to bridge domain"; |
| list vni { | | list vni { |
| key "vni-id"; | | key "vni-id"; |
| description | | description |
| "Assign VxLAN Network Identifier to bridge domain"; | | "Assign VxLAN Network Identifier to bridge domain"; |
| leaf vni-id { | | leaf vni-id { |
| type uint32 { | | type uint32 { |
| range "1..16777215" { | | range "1..16777215" { |
| description | | description |
| "Specify VxLAN Network Identifier value"; | | "Specify VxLAN Network Identifier value"; |
| } | | } |
| } | | } |
| description | | description |
| "Assign VxLAN Network Identifier to bridge domain"; | | "Assign VxLAN Network Identifier to bridge domain"; |
| } | | } |
| container static-mac-addresses { | | container static-mac-addresses { |
| description | | description |
| "Static MAC address"; | | "Static MAC address"; |
| list static-mac-address { | | list static-mac-address { |
| key "mac-address"; | | key "mac-address"; |
| description | | description |
| "Static MAC address"; | | "Static MAC address"; |
| leaf mac-address { | | leaf mac-address { |
| type yang:mac-address; | | type yang:mac-address; |
| description | | description |
| "Static MAC address"; | | "Static MAC address"; |
| } | | } |
| leaf next-hop { | | leaf next-hop { |
| type inet:ipv4-address-no-zone; | | type inet:ipv4-address-no-zone; |
| description | | description |
| "Specify the next hop IP address"; | | "Specify the next hop IP address"; |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| container pw-classes { | | container pw-classes { |
| description | | description |
| "Pseudowire class template"; | | "Pseudowire class template"; |
| list pw-class { | | list pw-class { |
| key "pw-class-name"; | | key "pw-class-name"; |
| description | | description |
| "Pseudowire class template"; | | "Pseudowire class template"; |
| leaf pw-class-name { | | leaf pw-class-name { |
| type xr:Cisco-ios-xr-string { | | type xr:Cisco-ios-xr-string { |
| length "1..32" { | | length "1..32" { |
| description | | description |
| "Pseudowire-class name (Max character length: 32)"; | | "Pseudowire-class name (Max character length: 32)"; |
| } | | } |
| } | | } |
| description | | description |
| "Pseudowire class template"; | | "Pseudowire class template"; |
| } | | } |
| container encapsulation { | | container encapsulation { |
| description | | description |
| "Pseudowire encapsulation"; | | "Pseudowire encapsulation"; |
| container mpls { | | container mpls { |
| presence "Indicates a mpls node is configured."; | | presence "Indicates a mpls node is configured."; |
| description | | description |
| "Set pseudowire encapsulation to MPLS"; | | "Set pseudowire encapsulation to MPLS"; |
| container protocol { | | container protocol { |
| description | | description |
| "Set the dynamic pseudowire signaling protocol"; | | "Set the dynamic pseudowire signaling protocol"; |
| container ldp { | | container ldp { |
| presence "Indicates a ldp node is configured."; | | presence "Indicates a ldp node is configured."; |
| description | | description |
| "Set LDP as the signaling protocol for this pseudowire class"; | | "Set LDP as the signaling protocol for this pseudowire class"; |
| } | | } |
| } | | } |
| container control-word { | | container control-word { |
| presence "Indicates a control-word node is configured."; | | presence "Indicates a control-word node is configured."; |
| description | | description |
| "Enable Control word"; | | "Enable Control word"; |
| } | | } |
| container transport-mode { | | container transport-mode { |
| if-feature "l2vpn_is_cli_supported"; | | if-feature "l2vpn_is_cli_supported"; |
| description | | description |
| "Remote transport mode"; | | "Remote transport mode"; |
| container ethernet { | | container ethernet { |
| must "not(../vlan or ../passthrough)"; | | must "not(../vlan or ../passthrough)"; |
| presence "Indicates a ethernet node is configured."; | | presence "Indicates a ethernet node is configured."; |
| description | | description |
| "Ethernet port mode"; | | "Ethernet port mode"; |
| } | | } |
| container vlan { | | container vlan { |
| must "not(../ethernet or ../passthrough)"; | | must "not(../ethernet or ../passthrough)"; |
| presence "Indicates a vlan node is configured."; | | presence "Indicates a vlan node is configured."; |
| description | | description |
| "Vlan tagged mode"; | | "Vlan tagged mode"; |
| } | | } |
| container passthrough { | | container passthrough { |
| must "not(../ethernet or ../vlan)"; | | must "not(../ethernet or ../vlan)"; |
| presence "Indicates a passthrough node is configured."; | | presence "Indicates a passthrough node is configured."; |
| description | | description |
| "passthrough incoming tags"; | | "passthrough incoming tags"; |
| } | | } |
| } | | } |
| container vccv { | | container vccv { |
| description | | description |
| "VCCV settings"; | | "VCCV settings"; |
| container verification-type { | | container verification-type { |
| description | | description |
| "Enable or disable VCCV verification type"; | | "Enable or disable VCCV verification type"; |
| container none { | | container none { |
| presence "Indicates a none node is configured."; | | presence "Indicates a none node is configured."; |
| description | | description |
| "No VCCV verification"; | | "No VCCV verification"; |
| } | | } |
| } | | } |
| } | | } |
| container sequencing { | | container sequencing { |
| description | | description |
| "Sequencing"; | | "Sequencing"; |
| container transmit { | | container transmit { |
| must "not(../receive or ../both)"; | | must "not(../receive or ../both)"; |
| presence "Indicates a transmit node is configured."; | | presence "Indicates a transmit node is configured."; |
| description | | description |
| "Sequencing on transmit side"; | | "Sequencing on transmit side"; |
| leaf resync { | | leaf resync { |
| type uint32 { | | type uint32 { |
| range "5..65535" { | | range "5..65535" { |
| description | | description |
| "Resync threshold"; | | "Resync threshold"; |
| } | | } |
| } | | } |
| description | | description |
| "Set the threshold for out-of-sequence packets before resync"; | | "Set the threshold for out-of-sequence packets before resync"; |
| } | | } |
| } | | } |
| container receive { | | container receive { |
| must "not(../transmit or ../both)"; | | must "not(../transmit or ../both)"; |
| presence "Indicates a receive node is configured."; | | presence "Indicates a receive node is configured."; |
| description | | description |
| "Sequencing on receive side"; | | "Sequencing on receive side"; |
| leaf resync { | | leaf resync { |
| type uint32 { | | type uint32 { |
| range "5..65535" { | | range "5..65535" { |
| description | | description |
| "Resync threshold"; | | "Resync threshold"; |
| } | | } |
| } | | } |
| description | | description |
| "Set the threshold for out-of-sequence packets before resync"; | | "Set the threshold for out-of-sequence packets before resync"; |
| } | | } |
| } | | } |
| container both { | | container both { |
| must "not(../transmit or ../receive)"; | | must "not(../transmit or ../receive)"; |
| presence "Indicates a both node is configured."; | | presence "Indicates a both node is configured."; |
| description | | description |
| "Sequencing on both transmit and receive side"; | | "Sequencing on both transmit and receive side"; |
| leaf resync { | | leaf resync { |
| type uint32 { | | type uint32 { |
| range "5..65535" { | | range "5..65535" { |
| description | | description |
| "Resync threshold"; | | "Resync threshold"; |
| } | | } |
| } | | } |
| description | | description |
| "Set the threshold for out-of-sequence packets before resync"; | | "Set the threshold for out-of-sequence packets before resync"; |
| } | | } |
| } | | } |
| } | | } |
| container preferred-path { | | container preferred-path { |
| description | | description |
| "Preferred path tunnel settings"; | | "Preferred path tunnel settings"; |
| container interface { | | container interface { |
| description | | description |
| "Use tunnel interface for preferred path"; | | "Use tunnel interface for preferred path"; |
| container tunnel-te { | | container tunnel-te { |
| description | | description |
| "Specify TE tunnel interface name for preferred path"; | | "Specify TE tunnel interface name for preferred path"; |
| leaf tunnel-number { | | leaf tunnel-number { |
| type uint32 { | | type uint32 { |
| range "0..65535" { | | range "0..65535" { |
| description | | description |
| "Specify tunnel number for preferred path"; | | "Specify tunnel number for preferred path"; |
| } | | } |
| } | | } |
| must | | must |
| "not(../tunnel-name or ../../tunnel-ip or | | "not(../tunnel-name or ../../tunnel-ip or |
| ../../tunnel-tp or ../../../sr-te/policy)"; | | ../../tunnel-tp or ../../../sr-te/policy)"; |
| description | | description |
| "Specify tunnel number for preferred path"; | | "Specify tunnel number for preferred path"; |
| } | | } |
| leaf tunnel-name { | | leaf tunnel-name { |
| type xr:Cisco-ios-xr-string { | | type xr:Cisco-ios-xr-string { |
| length "1..60" { | | length "1..60" { |
| description | | description |
| "Specify named tunnel for preferred path"; | | "Specify named tunnel for preferred path"; |
| } | | } |
| } | | } |
| must | | must |
| "not(../tunnel-number or ../../tunnel-ip or | | "not(../tunnel-number or ../../tunnel-ip or |
| ../../tunnel-tp or ../../../sr-te/policy)"; | | ../../tunnel-tp or ../../../sr-te/policy)"; |
| description | | description |
| "Specify named tunnel for preferred path"; | | "Specify named tunnel for preferred path"; |
| } | | } |
| } | | } |
| leaf tunnel-ip { | | leaf tunnel-ip { |
| type uint32 { | | type uint32 { |
| range "0..65535" { | | range "0..65535" { |
| description | | description |
| "Specify tunnel number for preferred path"; | | "Specify tunnel number for preferred path"; |
| } | | } |
| } | | } |
| must | | must |
| "not(../tunnel-te/tunnel-number or ../tunnel-te/tunnel-name or | | "not(../tunnel-te/tunnel-number or ../tunnel-te/tunnel-name or |
| ../tunnel-tp or ../../sr-te/policy)"; | | ../tunnel-tp or ../../sr-te/policy)"; |
| description | | description |
| "Specify IP tunnel interface name for preferred path"; | | "Specify IP tunnel interface name for preferred path"; |
| } | | } |
| leaf tunnel-tp { | | leaf tunnel-tp { |
| type uint32 { | | type uint32 { |
| range "0..65535" { | | range "0..65535" { |
| description | | description |
| "Specify tunnel number for preferred path"; | | "Specify tunnel number for preferred path"; |
| } | | } |
| } | | } |
| must | | must |
| "not(../tunnel-te/tunnel-number or ../tunnel-te/tunnel-name or | | "not(../tunnel-te/tunnel-number or ../tunnel-te/tunnel-name or |
| ../tunnel-ip or ../../sr-te/policy)"; | | ../tunnel-ip or ../../sr-te/policy)"; |
| description | | description |
| "Specify TP tunnel interface name for preferred path"; | | "Specify TP tunnel interface name for preferred path"; |
| } | | } |
| } | | } |
| container sr-te { | | container sr-te { |
| description | | description |
| "Use segment-routing traffic-engineering for preferred path"; | | "Use segment-routing traffic-engineering for preferred path"; |
| leaf policy { | | leaf policy { |
| type xr:Cisco-ios-xr-string { | | type xr:Cisco-ios-xr-string { |
| length "1..60" { | | length "1..60" { |
| description | | description |
| "Name of SR TE policy"; | | "Name of SR TE policy"; |
| } | | } |
| } | | } |
| must | | must |
| "not(../../interface/tunnel-te/tunnel-number or | | "not(../../interface/tunnel-te/tunnel-number or |
| ../../interface/tunnel-te/tunnel-name or | | ../../interface/tunnel-te/tunnel-name or |
| ../../interface/tunnel-ip or | | ../../interface/tunnel-ip or |
| ../../interface/tunnel-tp)"; | | ../../interface/tunnel-tp)"; |
| description | | description |
| "Specify SR TE policy for preferred path"; | | "Specify SR TE policy for preferred path"; |
| } | | } |
| } | | } |
| container fallback { | | container fallback { |
| description | | description |
| "Fallback option for preferred path"; | | "Fallback option for preferred path"; |
| container disable { | | container disable { |
| must | | must |
| "../../interface/tunnel-te/tunnel-number or | | "../../interface/tunnel-te/tunnel-number or |
| ../../interface/tunnel-te/tunnel-name or | | ../../interface/tunnel-te/tunnel-name or |
| ../../interface/tunnel-ip or | | ../../interface/tunnel-ip or |
| ../../interface/tunnel-tp or | | ../../interface/tunnel-tp or |
| ../../sr-te/policy"; | | ../../sr-te/policy"; |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Disable fallback for preferred path"; | | "Disable fallback for preferred path"; |
| } | | } |
| } | | } |
| } | | } |
| container switching-tlv { | | container switching-tlv { |
| description | | description |
| "PW switching point TLV"; | | "PW switching point TLV"; |
| container hide { | | container hide { |
| presence "Indicates a hide node is configured."; | | presence "Indicates a hide node is configured."; |
| description | | description |
| "Hide TLV"; | | "Hide TLV"; |
| } | | } |
| } | | } |
| container tag-rewrite { | | container tag-rewrite { |
| description | | description |
| "tag rewrite mode"; | | "tag rewrite mode"; |
| container ingress { | | container ingress { |
| description | | description |
| "configuring ingress mode"; | | "configuring ingress mode"; |
| leaf vlan { | | leaf vlan { |
| type uint32 { | | type uint32 { |
| range "1..4094" { | | range "1..4094" { |
| description | | description |
| "vlan tagged mode"; | | "vlan tagged mode"; |
| } | | } |
| } | | } |
| description | | description |
| "vlan tagged mode"; | | "vlan tagged mode"; |
| } | | } |
| } | | } |
| } | | } |
| container redundancy { | | container redundancy { |
| if-feature "l2vpn_is_cli_supported"; | | if-feature "l2vpn_is_cli_supported"; |
| description | | description |
| "PW redundancy settings"; | | "PW redundancy settings"; |
| container one-way { | | container one-way { |
| presence "Indicates a one-way node is configured."; | | presence "Indicates a one-way node is configured."; |
| description | | description |
| "Force one-way PW redundancy behavior in Redundancy Group"; | | "Force one-way PW redundancy behavior in Redundancy Group"; |
| } | | } |
| leaf initial-delay { | | leaf initial-delay { |
| type uint32 { | | type uint32 { |
| range "0..120" { | | range "0..120" { |
| description | | description |
| "Time in seconds (round to 10). The default is 60"; | | "Time in seconds (round to 10). The default is 60"; |
| } | | } |
| } | | } |
| description | | description |
| "Initial delay before activating the redundant PW"; | | "Initial delay before activating the redundant PW"; |
| } | | } |
| } | | } |
| container load-balancing { | | container load-balancing { |
| description | | description |
| "PW class Load Balancing"; | | "PW class Load Balancing"; |
| container pw-label { | | container pw-label { |
| presence "Indicates a pw-label node is configured."; | | presence "Indicates a pw-label node is configured."; |
| description | | description |
| "Enable PW VC label based load balancing"; | | "Enable PW VC label based load balancing"; |
| } | | } |
| container flow-label { | | container flow-label { |
| description | | description |
| "Flow label based load balancing setting"; | | "Flow label based load balancing setting"; |
| container transmit { | | container transmit { |
| must "not(../receive or ../both)"; | | must "not(../receive or ../both)"; |
| presence "Indicates a transmit node is configured."; | | presence "Indicates a transmit node is configured."; |
| description | | description |
| "Insert Flow label on transmit "; | | "Insert Flow label on transmit "; |
| container static { | | container static { |
| presence "Indicates a static node is configured."; | | presence "Indicates a static node is configured."; |
| description | | description |
| "Set Flow label parameters statically"; | | "Set Flow label parameters statically"; |
| } | | } |
| } | | } |
| container receive { | | container receive { |
| must "not(../transmit or ../both)"; | | must "not(../transmit or ../both)"; |
| presence "Indicates a receive node is configured."; | | presence "Indicates a receive node is configured."; |
| description | | description |
| "Discard Flow label on receive"; | | "Discard Flow label on receive"; |
| container static { | | container static { |
| presence "Indicates a static node is configured."; | | presence "Indicates a static node is configured."; |
| description | | description |
| "Set Flow label parameters statically"; | | "Set Flow label parameters statically"; |
| } | | } |
| } | | } |
| container both { | | container both { |
| must "not(../transmit or ../receive)"; | | must "not(../transmit or ../receive)"; |
| presence "Indicates a both node is configured."; | | presence "Indicates a both node is configured."; |
| description | | description |
| "Insert/Discard Flow label on transmit/recceive"; | | "Insert/Discard Flow label on transmit/recceive"; |
| container static { | | container static { |
| presence "Indicates a static node is configured."; | | presence "Indicates a static node is configured."; |
| description | | description |
| "Set Flow label parameters statically"; | | "Set Flow label parameters statically"; |
| } | | } |
| } | | } |
| container code { | | container code { |
| description | | description |
| "Flow label TLV code"; | | "Flow label TLV code"; |
| container one7 { | | container one7 { |
| presence "Indicates a one7 node is configured."; | | presence "Indicates a one7 node is configured."; |
| description | | description |
| "Legacy code value"; | | "Legacy code value"; |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Disables sending code 17 TLV"; | | "Disables sending code 17 TLV"; |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| container ipv4 { | | container ipv4 { |
| description | | description |
| "Set the local source IPv4 address"; | | "Set the local source IPv4 address"; |
| leaf source { | | leaf source { |
| type inet:ipv4-address-no-zone; | | type inet:ipv4-address-no-zone; |
| description | | description |
| "The local source IPv4 address"; | | "The local source IPv4 address"; |
| } | | } |
| } | | } |
| } | | } |
| container l2tpv3 { | | container l2tpv3 { |
| presence "Indicates a l2tpv3 node is configured."; | | presence "Indicates a l2tpv3 node is configured."; |
| description | | description |
| "Set pseudowire encapsulation to L2TPV3"; | | "Set pseudowire encapsulation to L2TPV3"; |
| container protocol { | | container protocol { |
| description | | description |
| "Set the dynamic pseudowire signaling protocol"; | | "Set the dynamic pseudowire signaling protocol"; |
| container l2tpv3 { | | container l2tpv3 { |
| presence "Indicates a l2tpv3 node is configured."; | | presence "Indicates a l2tpv3 node is configured."; |
| description | | description |
| "Set L2TPv3 as the signaling protocol for this pseudowire class"; | | "Set L2TPv3 as the signaling protocol for this pseudowire class"; |
| leaf class { | | leaf class { |
| type xr:Cisco-ios-xr-string { | | type xr:Cisco-ios-xr-string { |
| length "1..32" { | | length "1..32" { |
| description | | description |
| "The L2TPv3 class name"; | | "The L2TPv3 class name"; |
| } | | } |
| pattern "[a-zA-Z][-_.a-z0-9A-Z]*"; | | pattern "[a-zA-Z][-_.a-z0-9A-Z]*"; |
| } | | } |
| description | | description |
| "L2TPv3 class"; | | "L2TPv3 class"; |
| } | | } |
| } | | } |
| } | | } |
| container dfbit { | | container dfbit { |
| description | | description |
| "Settings of the Don't Fragment Bit (DFBIT)"; | | "Settings of the Don't Fragment Bit (DFBIT)"; |
| container set { | | container set { |
| presence "Indicates a set node is configured."; | | presence "Indicates a set node is configured."; |
| description | | description |
| "Set the DFBIT to 1"; | | "Set the DFBIT to 1"; |
| } | | } |
| } | | } |
| container tos { | | container tos { |
| description | | description |
| "Setting of Type of Service (ToS)"; | | "Setting of Type of Service (ToS)"; |
| leaf value { | | leaf value { |
| type uint32 { | | type uint32 { |
| range "0..255" { | | range "0..255" { |
| description | | description |
| "The value of the ToS for this L2TPv3 pseudowire class"; | | "The value of the ToS for this L2TPv3 pseudowire class"; |
| } | | } |
| } | | } |
| must "../reflect"; | | must "../reflect"; |
| description | | description |
| "Set the value of the ToS"; | | "Set the value of the ToS"; |
| } | | } |
| container reflect { | | container reflect { |
| must "../value"; | | must "../value"; |
| presence "Indicates a reflect node is configured."; | | presence "Indicates a reflect node is configured."; |
| description | | description |
| "Reflect the TOS"; | | "Reflect the TOS"; |
| } | | } |
| } | | } |
| leaf ttl { | | leaf ttl { |
| type uint32 { | | type uint32 { |
| range "1..255" { | | range "1..255" { |
| description | | description |
| "TTL value"; | | "TTL value"; |
| } | | } |
| } | | } |
| description | | description |
| "Set the Time To Live (TTL)"; | | "Set the Time To Live (TTL)"; |
| } | | } |
| container pmtu { | | container pmtu { |
| presence "Indicates a pmtu node is configured."; | | presence "Indicates a pmtu node is configured."; |
| description | | description |
| "Path Maximum Transmission Unit (PMTU)"; | | "Path Maximum Transmission Unit (PMTU)"; |
| leaf max { | | leaf max { |
| type uint32 { | | type uint32 { |
| range "68..65535" { | | range "68..65535" { |
| description | | description |
| "The value of the Maximum allowable session MTU"; | | "The value of the Maximum allowable session MTU"; |
| } | | } |
| } | | } |
| description | | description |
| "Set the Maximum allowable session MTU"; | | "Set the Maximum allowable session MTU"; |
| } | | } |
| } | | } |
| container ipv4 { | | container ipv4 { |
| description | | description |
| "Set the local source IPv4 address"; | | "Set the local source IPv4 address"; |
| leaf source { | | leaf source { |
| type inet:ipv4-address-no-zone; | | type inet:ipv4-address-no-zone; |
| description | | description |
| "The local source IPv4 address"; | | "The local source IPv4 address"; |
| } | | } |
| } | | } |
| container cookie { | | container cookie { |
| description | | description |
| "L2TPv3 cookie setting"; | | "L2TPv3 cookie setting"; |
| container size { | | container size { |
| description | | description |
| "L2TPv3 cookie size"; | | "L2TPv3 cookie size"; |
| container zero { | | container zero { |
| must "not(../four or ../eight)"; | | must "not(../four or ../eight)"; |
| presence "Indicates a zero node is configured."; | | presence "Indicates a zero node is configured."; |
| description | | description |
| "The cookie size is zero bytes"; | | "The cookie size is zero bytes"; |
| } | | } |
| container four { | | container four { |
| must "not(../zero or ../eight)"; | | must "not(../zero or ../eight)"; |
| presence "Indicates a four node is configured."; | | presence "Indicates a four node is configured."; |
| description | | description |
| "The cookie size is four bytes"; | | "The cookie size is four bytes"; |
| } | | } |
| container eight { | | container eight { |
| must "not(../zero or ../four)"; | | must "not(../zero or ../four)"; |
| presence "Indicates a eight node is configured."; | | presence "Indicates a eight node is configured."; |
| description | | description |
| "The cookie size is eight bytes"; | | "The cookie size is eight bytes"; |
| } | | } |
| } | | } |
| } | | } |
| container sequencing { | | container sequencing { |
| description | | description |
| "Sequencing"; | | "Sequencing"; |
| container both { | | container both { |
| presence "Indicates a both node is configured."; | | presence "Indicates a both node is configured."; |
| description | | description |
| "Sequencing on both transmit and receive side"; | | "Sequencing on both transmit and receive side"; |
| leaf resync { | | leaf resync { |
| type uint32 { | | type uint32 { |
| range "5..65535" { | | range "5..65535" { |
| description | | description |
| "Resync threshold"; | | "Resync threshold"; |
| } | | } |
| } | | } |
| description | | description |
| "Set the threshold for out-of-sequence packets before resync"; | | "Set the threshold for out-of-sequence packets before resync"; |
| } | | } |
| } | | } |
| } | | } |
| container transport-mode { | | container transport-mode { |
| description | | description |
| "Remote transport mode"; | | "Remote transport mode"; |
| container ethernet { | | container ethernet { |
| must "not(../vlan)"; | | must "not(../vlan)"; |
| presence "Indicates a ethernet node is configured."; | | presence "Indicates a ethernet node is configured."; |
| description | | description |
| "Ethernet port mode"; | | "Ethernet port mode"; |
| } | | } |
| container vlan { | | container vlan { |
| must "not(../ethernet)"; | | must "not(../ethernet)"; |
| presence "Indicates a vlan node is configured."; | | presence "Indicates a vlan node is configured."; |
| description | | description |
| "Vlan tagged mode"; | | "Vlan tagged mode"; |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| container backup { | | container backup { |
| description | | description |
| "Pseudowire backup"; | | "Pseudowire backup"; |
| container disable { | | container disable { |
| description | | description |
| "Disable backup when primary comes back up"; | | "Disable backup when primary comes back up"; |
| leaf delay { | | leaf delay { |
| type uint32 { | | type uint32 { |
| range "0..180" { | | range "0..180" { |
| description | | description |
| "Delay in seconds"; | | "Delay in seconds"; |
| } | | } |
| } | | } |
| must "not(../never)"; | | must "not(../never)"; |
| description | | description |
| "Disable backup after a specified delay"; | | "Disable backup after a specified delay"; |
| } | | } |
| container never { | | container never { |
| must "not(../delay)"; | | must "not(../delay)"; |
| presence "Indicates a never node is configured."; | | presence "Indicates a never node is configured."; |
| description | | description |
| "Never disable backup"; | | "Never disable backup"; |
| } | | } |
| } | | } |
| } | | } |
| container mac-withdraw { | | container mac-withdraw { |
| presence "Indicates a mac-withdraw node is configured."; | | presence "Indicates a mac-withdraw node is configured."; |
| description | | description |
| "Send MAC withdraw message when PW becomes active"; | | "Send MAC withdraw message when PW becomes active"; |
| } | | } |
| } | | } |
| } | | } |
| container ignore-mtu-mismatch-ad { | | container ignore-mtu-mismatch-ad { |
| presence "Indicates a ignore-mtu-mismatch-ad node is configured."; | | presence "Indicates a ignore-mtu-mismatch-ad node is configured."; |
| description | | description |
| "Ignore MTU mismatch for auto-discovered PWs"; | | "Ignore MTU mismatch for auto-discovered PWs"; |
| } | | } |
| container ignore-mtu-mismatch { | | container ignore-mtu-mismatch { |
| presence "Indicates a ignore-mtu-mismatch node is configured."; | | presence "Indicates a ignore-mtu-mismatch node is configured."; |
| description | | description |
| "Ignore MTU mismatch for all L2VPN"; | | "Ignore MTU mismatch for all L2VPN"; |
| } | | } |
| leaf description { | | leaf description { |
| type string { | | type string { |
| length "1..64" { | | length "1..64" { |
| description | | description |
| "l2vpn global description string - maximum 64 characters"; | | "l2vpn global description string - maximum 64 characters"; |
| } | | } |
| } | | } |
| description | | description |
| "Multi segment psedowire global description"; | | "Multi segment psedowire global description"; |
| } | | } |
| container pw-status { | | container pw-status { |
| description | | description |
| "Configure PW status"; | | "Configure PW status"; |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Disable PW status"; | | "Disable PW status"; |
| } | | } |
| } | | } |
| leaf router-id { | | leaf router-id { |
| if-feature "l2vpn_is_cli_supported"; | | if-feature "l2vpn_is_cli_supported"; |
| type inet:ipv4-address-no-zone; | | type inet:ipv4-address-no-zone; |
| description | | description |
| "Global L2VPN Router ID"; | | "Global L2VPN Router ID"; |
| } | | } |
| container load-balancing { | | container load-balancing { |
| description | | description |
| "Global L2VPN Load Balancing"; | | "Global L2VPN Load Balancing"; |
| container flow { | | container flow { |
| description | | description |
| "Enable Flow based load balancing"; | | "Enable Flow based load balancing"; |
| container src-dst-mac { | | container src-dst-mac { |
| must "not(../src-dst-ip)"; | | must "not(../src-dst-ip)"; |
| presence "Indicates a src-dst-mac node is configured."; | | presence "Indicates a src-dst-mac node is configured."; |
| description | | description |
| "Use source and destination MAC addresses for hashing"; | | "Use source and destination MAC addresses for hashing"; |
| } | | } |
| container src-dst-ip { | | container src-dst-ip { |
| must "not(../src-dst-mac)"; | | must "not(../src-dst-mac)"; |
| presence "Indicates a src-dst-ip node is configured."; | | presence "Indicates a src-dst-ip node is configured."; |
| description | | description |
| "Use source and destination IP addresses for hashing"; | | "Use source and destination IP addresses for hashing"; |
| } | | } |
| } | | } |
| } | | } |
| container capability { | | container capability { |
| description | | description |
| "Global capability mode"; | | "Global capability mode"; |
| container single-mode { | | container single-mode { |
| must "not(../high-mode)"; | | must "not(../high-mode)"; |
| presence "Indicates a single-mode node is configured."; | | presence "Indicates a single-mode node is configured."; |
| description | | description |
| "Disable global capability re-computation"; | | "Disable global capability re-computation"; |
| } | | } |
| container high-mode { | | container high-mode { |
| must "not(../single-mode)"; | | must "not(../single-mode)"; |
| presence "Indicates a high-mode node is configured."; | | presence "Indicates a high-mode node is configured."; |
| description | | description |
| "Compute global capability as the highest node capability"; | | "Compute global capability as the highest node capability"; |
| } | | } |
| } | | } |
| container pw-oam { | | container pw-oam { |
| description | | description |
| "PW OAM"; | | "PW OAM"; |
| container refresh { | | container refresh { |
| description | | description |
| "Refresh interval"; | | "Refresh interval"; |
| leaf transmit { | | leaf transmit { |
| type uint32 { | | type uint32 { |
| range "1..4095" { | | range "1..4095" { |
| description | | description |
| "Seconds"; | | "Seconds"; |
| } | | } |
| } | | } |
| description | | description |
| "Transmit"; | | "Transmit"; |
| } | | } |
| } | | } |
| } | | } |
| container tcn-propagation { | | container tcn-propagation { |
| presence "Indicates a tcn-propagation node is configured."; | | presence "Indicates a tcn-propagation node is configured."; |
| description | | description |
| "Enable topology change notification propagation"; | | "Enable topology change notification propagation"; |
| } | | } |
| container pw-grouping { | | container pw-grouping { |
| presence "Indicates a pw-grouping node is configured."; | | presence "Indicates a pw-grouping node is configured."; |
| description | | description |
| "Enable PW-Grouping"; | | "Enable PW-Grouping"; |
| } | | } |
| container neighbors { | | container neighbors { |
| description | | description |
| "neighbor submode"; | | "neighbor submode"; |
| container all { | | container all { |
| description | | description |
| "all neighbors"; | | "all neighbors"; |
| container ldp { | | container ldp { |
| description | | description |
| "LDP protocol"; | | "LDP protocol"; |
| container flap { | | container flap { |
| presence "Indicates a flap node is configured."; | | presence "Indicates a flap node is configured."; |
| description | | description |
| "Forcing targetted-sesion flapping"; | | "Forcing targetted-sesion flapping"; |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| container mac { | | container mac { |
| description | | description |
| "Global MAC commands"; | | "Global MAC commands"; |
| container limit { | | container limit { |
| description | | description |
| "Global MAC limit commands"; | | "Global MAC limit commands"; |
| leaf threshold { | | leaf threshold { |
| type uint32 { | | type uint32 { |
| range "1..100" { | | range "1..100" { |
| description | | description |
| "Percentage 1 to 100 (default 75%)"; | | "Percentage 1 to 100 (default 75%)"; |
| } | | } |
| } | | } |
| description | | description |
| "Global MAC limit threshold"; | | "Global MAC limit threshold"; |
| } | | } |
| } | | } |
| } | | } |
| container xconnect { | | container xconnect { |
| description | | description |
| "Configure cross connect commands"; | | "Configure cross connect commands"; |
| container groups { | | container groups { |
| description | | description |
| "Specify the group the cross connects belong to"; | | "Specify the group the cross connects belong to"; |
| list group { | | list group { |
| key "group-name"; | | key "group-name"; |
| description | | description |
| "Specify the group the cross connects belong to"; | | "Specify the group the cross connects belong to"; |
| leaf group-name { | | leaf group-name { |
| type xr:Cisco-ios-xr-string { | | type xr:Cisco-ios-xr-string { |
| length "1..32" { | | length "1..32" { |
| description | | description |
| "Name of the cross connects group"; | | "Name of the cross connects group"; |
| } | | } |
| } | | } |
| description | | description |
| "Specify the group the cross connects belong to"; | | "Specify the group the cross connects belong to"; |
| } | | } |
| container p2ps { | | container p2ps { |
| description | | description |
| "Configure point to point cross connect commands"; | | "Configure point to point cross connect commands"; |
| list p2p { | | list p2p { |
| key "p2p-xconnect-name"; | | key "p2p-xconnect-name"; |
| description | | description |
| "Configure point to point cross connect commands"; | | "Configure point to point cross connect commands"; |
| leaf p2p-xconnect-name { | | leaf p2p-xconnect-name { |
| type xr:Cisco-ios-xr-string { | | type xr:Cisco-ios-xr-string { |
| length "1..38" { | | length "1..38" { |
| description | | description |
| "Name of the point to point cross connect"; | | "Name of the point to point cross connect"; |
| } | | } |
| } | | } |
| description | | description |
| "Configure point to point cross connect commands"; | | "Configure point to point cross connect commands"; |
| } | | } |
| container interfaces { | | container interfaces { |
| description | | description |
| "Specify the attachment circuit "; | | "Specify the attachment circuit "; |
| list interface { | | list interface { |
| key "interface-name"; | | key "interface-name"; |
| description | | description |
| "Specify (sub-)interface name to cross connect"; | | "Specify (sub-)interface name to cross connect"; |
| leaf interface-name { | | leaf interface-name { |
| type xr:Interface-name; | | type xr:Interface-name; |
| description | | description |
| "Specify (sub-)interface name to cross connect"; | | "Specify (sub-)interface name to cross connect"; |
| } | | } |
| } | | } |
| } | | } |
| leaf description { | | leaf description { |
| type string { | | type string { |
| length "1..64" { | | length "1..64" { |
| description | | description |
| "Cross connect description string"; | | "Cross connect description string"; |
| } | | } |
| } | | } |
| description | | description |
| "Description for cross connect"; | | "Description for cross connect"; |
| } | | } |
| container vpws-seamless-integration { | | container vpws-seamless-integration { |
| if-feature "l2vpn_platform_vpws_seamless_integration_supported"; | | if-feature "l2vpn_platform_vpws_seamless_integration_supported"; |
| presence "Indicates a vpws-seamless-integration node is configured."; | | presence "Indicates a vpws-seamless-integration node is configured."; |
| description | | description |
| "EVPN-VPWS Seamless Integration with Legacy VPWS"; | | "EVPN-VPWS Seamless Integration with Legacy VPWS"; |
| } | | } |
| container interworking { | | container interworking { |
| description | | description |
| "Set attachment circuit interworking"; | | "Set attachment circuit interworking"; |
| container ipv4 { | | container ipv4 { |
| must "not(../ethernet)"; | | must "not(../ethernet)"; |
| presence "Indicates a ipv4 node is configured."; | | presence "Indicates a ipv4 node is configured."; |
| description | | description |
| "IPv4 interworking"; | | "IPv4 interworking"; |
| } | | } |
| container ethernet { | | container ethernet { |
| must "not(../ipv4)"; | | must "not(../ipv4)"; |
| presence "Indicates a ethernet node is configured."; | | presence "Indicates a ethernet node is configured."; |
| description | | description |
| "Ethernet interworking"; | | "Ethernet interworking"; |
| } | | } |
| } | | } |
| container backup { | | container backup { |
| if-feature "l2vpn_p2p_backup_supported"; | | if-feature "l2vpn_p2p_backup_supported"; |
| description | | description |
| "Specify backup to be shared by p2p xconnect segments"; | | "Specify backup to be shared by p2p xconnect segments"; |
| list interface { | | list interface { |
| key "interface-name"; | | key "interface-name"; |
| description | | description |
| "Specify the attachment circuit"; | | "Specify the attachment circuit"; |
| leaf interface-name { | | leaf interface-name { |
| type xr:Interface-name; | | type xr:Interface-name; |
| description | | description |
| "Specify the attachment circuit"; | | "Specify the attachment circuit"; |
| } | | } |
| } | | } |
| } | | } |
| container neighbor { | | container neighbor { |
| description | | description |
| "Specify the peer to cross connect"; | | "Specify the peer to cross connect"; |
| container ipv4s { | | container ipv4s { |
| description | | description |
| "IPv4"; | | "IPv4"; |
| list ipv4 { | | list ipv4 { |
| key "address pw-id"; | | key "address pw-id"; |
| description | | description |
| "IPv4"; | | "IPv4"; |
| leaf address { | | leaf address { |
| type inet:ipv4-address-no-zone; | | type inet:ipv4-address-no-zone; |
| description | | description |
| "IPv4"; | | "IPv4"; |
| n | } | n | |
| leaf pw-id { | | |
| type uint32 { | | |
| range "1..4294967295" { | | |
| description | | |
| "Pseudowire ID"; | | |
| } | | |
| } | | |
| description | | |
| "Specify the pseudowire id"; | | |
| } | | |
| container backup { | | |
| description | | |
| "Backup pseudowire for the cross connect"; | | |
| container neighbors { | | |
| description | | |
| "Specify the peer to cross connect"; | | |
| list neighbor { | | |
| key "address pw-id"; | | |
| description | | |
| "Specify the peer to cross connect"; | | |
| leaf address { | | |
| type inet:ipv4-address-no-zone; | | |
| description | | |
| "Specify the peer to cross connect"; | | |
| } | | |
| leaf pw-id { | | |
| type uint32 { | | |
| range "1..4294967295" { | | |
| description | | |
| "Pseudowire ID"; | | |
| } | | |
| } | | |
| description | | |
| "Specify the pseudowire id"; | | |
| } | | |
| container mpls { | | |
| description | | |
| "MPLS L2VPN PW command"; | | |
| container static { | | |
| description | | |
| "MPLS L2VPN static settings"; | | |
| container label { | | |
| description | | |
| "MPLS L2VPN static labels"; | | |
| leaf local { | | |
| type uint32 { | | |
| range "16..1048575" { | | |
| description | | |
| "Local pseudowire label"; | | |
| } | | |
| } | | |
| must "../remote"; | | |
| description | | |
| "Local pseudowire label"; | | |
| } | | |
| leaf remote { | | |
| type uint32 { | | |
| range "16..1048575" { | | |
| description | | |
| "Remote pseudowire label"; | | |
| } | | |
| } | | |
| must "../local"; | | |
| description | | |
| "Remote pseudowire label"; | | |
| } | | |
| } | | |
| } | | |
| } | | |
| leaf pw-class { | | |
| type xr:Cisco-ios-xr-string { | | |
| length "1..32" { | | |
| description | | |
| "Pseudowire-class name"; | | |
| } | | |
| } | | |
| description | | |
| "PW class template name to use for the backup PW"; | | |
| } | | |
| } | | |
| } | | |
| } | | |
| container mpls { | | |
| description | | |
| "MPLS L2VPN PW command"; | | |
| container static { | | |
| description | | |
| "MPLS L2VPN static settings"; | | |
| container label { | | |
| description | | |
| "MPLS L2VPN static labels"; | | |
| leaf local { | | |
| type uint32 { | | |
| range "16..1048575" { | | |
| description | | |
| "Local pseudowire label"; | | |
| } | | |
| } | | |
| must "../remote"; | | |
| description | | |
| "Local pseudowire label"; | | |
| } | | |
| leaf remote { | | |
| type uint32 { | | |
| range "16..1048575" { | | |
| description | | |
| "Remote pseudowire label"; | | |
| } | | |
| } | | |
| must "../local"; | | |
| description | | |
| "Remote pseudowire label"; | | |
| } | | |
| } | | |
| } | | |
| } | | |
| leaf pw-class { | | |
| type xr:Cisco-ios-xr-string { | | |
| length "1..32" { | | |
| description | | |
| "Pseudowire-class name"; | | |
| } | | |
| } | | |
| description | | |
| "PW class template name to use for this XC"; | | |
| } | | |
| container tag-impose { | | |
| description | | |
| "tag impose mode"; | | |
| leaf vlan { | | |
| type uint32 { | | |
| range "1..4094" { | | |
| description | | |
| "vlan tagged mode"; | | |
| } | | |
| } | | |
| description | | |
| "vlan tagged mode"; | | |
| } | | |
| } | | |
| leaf bandwidth { | | |
| type uint32 { | | |
| range "0..4294967295" { | | |
| description | | |
| "PW Bandwidth"; | | |
| } | | |
| } | | |
| description | | |
| "bandwidth"; | | |
| } | | |
| container l2tp { | | |
| description | | |
| "L2TP PW"; | | |
| container static { | | |
| presence "Indicates a static node is configured."; | | |
| description | | |
| "L2TP PW static"; | | |
| container local { | | |
| description | | |
| "L2TP PW static local"; | | |
| leaf session { | | |
| type uint32 { | | |
| range "1..1023" { | | |
| description | | |
| "L2TP PW static local session ID"; | | |
| } | | |
| } | | |
| description | | |
| "L2TP PW static local session ID"; | | |
| } | | |
| container cookie { | | |
| description | | |
| "L2TP PW static local cookie settings"; | | |
| container size { | | |
| description | | |
| "L2TP PW static local cookie size settings"; | | |
| container zero { | | |
| presence "Indicates a zero node is configured."; | | |
| description | | |
| "The cookie size is zero bytes"; | | |
| } | | |
| container four { | | |
| presence "Indicates a four node is configured."; | | |
| description | | |
| "The cookie size is four bytes"; | | |
| leaf value { | | |
| type uint32 { | | |
| range "0..4294967295" { | | |
| description | | |
| "Lower 4 bytes value"; | | |
| } | | |
| } | | |
| mandatory true; | | |
| description | | |
| "The value of the cookie"; | | |
| } | | |
| } | | |
| container eight { | | |
| presence "Indicates a eight node is configured."; | | |
| description | | |
| "The cookie size is eight bytes"; | | |
| leaf value { | | |
| type uint32 { | | |
| range "0..4294967295" { | | |
| description | | |
| "Lower 4 bytes value"; | | |
| } | | |
| } | | |
| must "../higher-4-bytes-value"; | | |
| mandatory true; | | |
| description | | |
| "The value of the cookie"; | | |
| } | | |
| leaf higher-4-bytes-value { | | |
| type uint32 { | | |
| range "0..4294967295" { | | |
| description | | |
| "Higher 4 bytes value"; | | |
| } | | |
| } | | |
| must "../value"; | | |
| mandatory true; | | |
| description | | |
| "Higher 4 bytes value"; | | |
| } | | |
| } | | |
| } | | |
| } | | |
| } | | |
| container remote { | | |
| description | | |
| "L2TP PW static remote"; | | |
| leaf session { | | |
| type uint32 { | | |
| range "1..1023" { | | |
| description | | |
| "L2TP PW static remote session ID"; | | |
| } | | |
| } | | |
| description | | |
| "L2TP PW static remote session ID"; | | |
| } | | |
| container cookie { | | |
| description | | |
| "L2TP PW static remote cookie settings"; | | |
| container size { | | |
| description | | |
| "L2TP PW static remote cookie size settings"; | | |
| container zero { | | |
| presence "Indicates a zero node is configured."; | | |
| description | | |
| "The cookie size is zero bytes"; | | |
| } | | |
| container four { | | |
| presence "Indicates a four node is configured."; | | |
| description | | |
| "The cookie size is four bytes"; | | |
| leaf value { | | |
| type uint32 { | | |
| range "0..4294967295" { | | |
| description | | |
| "Lower 4 bytes value"; | | |
| } | | |
| } | | |
| mandatory true; | | |
| description | | |
| "The value of the cookie"; | | |
| } | | |
| } | | |
| container eight { | | |
| presence "Indicates a eight node is configured."; | | |
| description | | |
| "The cookie size is eight bytes"; | | |
| leaf value { | | |
| type uint32 { | | |
| range "0..4294967295" { | | |
| description | | |
| "Lower 4 bytes value"; | | |
| } | | |
| } | | |
| must "../higher-4-bytes-value"; | | |
| mandatory true; | | |
| description | | |
| "The value of the cookie"; | | |
| } | | |
| leaf higher-4-bytes-value { | | |
| type uint32 { | | |
| range "0..4294967295" { | | |
| description | | |
| "Higher 4 bytes value"; | | |
| } | | |
| } | | |
| must "../value"; | | |
| mandatory true; | | |
| description | | |
| "Higher 4 bytes value"; | | |
| } | | |
| } | | |
| } | | |
| } | | |
| } | | |
| } | | |
| } | | |
| } | | |
| } | | |
| container ipv6s { | | |
| description | | |
| "IPv4"; | | |
| list ipv6 { | | |
| key "address pw-id"; | | |
| description | | |
| "IPv6"; | | |
| leaf address { | | |
| type inet:ipv6-address-no-zone; | | |
| description | | |
| "IPv6"; | | |
| } | | } |
| leaf pw-id { | | leaf pw-id { |
| type uint32 { | | type uint32 { |
| range "1..4294967295" { | | range "1..4294967295" { |
| description | | description |
| "Pseudowire ID"; | | "Pseudowire ID"; |
| } | | } |
| } | | } |
| description | | description |
| "Specify the pseudowire id"; | | "Specify the pseudowire id"; |
| } | | } |
| container backup { | | container backup { |
| description | | description |
| "Backup pseudowire for the cross connect"; | | "Backup pseudowire for the cross connect"; |
| container neighbors { | | container neighbors { |
| description | | description |
| "Specify the peer to cross connect"; | | "Specify the peer to cross connect"; |
| list neighbor { | | list neighbor { |
| key "address pw-id"; | | key "address pw-id"; |
| description | | description |
| "Specify the peer to cross connect"; | | "Specify the peer to cross connect"; |
| leaf address { | | leaf address { |
| type inet:ipv4-address-no-zone; | | type inet:ipv4-address-no-zone; |
| description | | description |
| "Specify the peer to cross connect"; | | "Specify the peer to cross connect"; |
| } | | } |
| leaf pw-id { | | leaf pw-id { |
| type uint32 { | | type uint32 { |
| range "1..4294967295" { | | range "1..4294967295" { |
| description | | description |
| "Pseudowire ID"; | | "Pseudowire ID"; |
| } | | } |
| } | | } |
| description | | description |
| "Specify the pseudowire id"; | | "Specify the pseudowire id"; |
| } | | } |
| container mpls { | | container mpls { |
| description | | description |
| "MPLS L2VPN PW command"; | | "MPLS L2VPN PW command"; |
| container static { | | container static { |
| description | | description |
| "MPLS L2VPN static settings"; | | "MPLS L2VPN static settings"; |
| container label { | | container label { |
| description | | description |
| "MPLS L2VPN static labels"; | | "MPLS L2VPN static labels"; |
| leaf local { | | leaf local { |
| type uint32 { | | type uint32 { |
| range "16..1048575" { | | range "16..1048575" { |
| description | | description |
| "Local pseudowire label"; | | "Local pseudowire label"; |
| } | | } |
| } | | } |
| must "../remote"; | | must "../remote"; |
| description | | description |
| "Local pseudowire label"; | | "Local pseudowire label"; |
| } | | } |
| leaf remote { | | leaf remote { |
| type uint32 { | | type uint32 { |
| range "16..1048575" { | | range "16..1048575" { |
| description | | description |
| "Remote pseudowire label"; | | "Remote pseudowire label"; |
| } | | } |
| } | | } |
| must "../local"; | | must "../local"; |
| description | | description |
| "Remote pseudowire label"; | | "Remote pseudowire label"; |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| leaf pw-class { | | leaf pw-class { |
| type xr:Cisco-ios-xr-string { | | type xr:Cisco-ios-xr-string { |
| length "1..32" { | | length "1..32" { |
| description | | description |
| "Pseudowire-class name"; | | "Pseudowire-class name"; |
| } | | } |
| } | | } |
| description | | description |
| "PW class template name to use for the backup PW"; | | "PW class template name to use for the backup PW"; |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| container mpls { | | container mpls { |
| description | | description |
| "MPLS L2VPN PW command"; | | "MPLS L2VPN PW command"; |
| container static { | | container static { |
| description | | description |
| "MPLS L2VPN static settings"; | | "MPLS L2VPN static settings"; |
| container label { | | container label { |
| description | | description |
| "MPLS L2VPN static labels"; | | "MPLS L2VPN static labels"; |
| leaf local { | | leaf local { |
| type uint32 { | | type uint32 { |
| range "16..1048575" { | | range "16..1048575" { |
| description | | description |
| "Local pseudowire label"; | | "Local pseudowire label"; |
| } | | } |
| } | | } |
| must "../remote"; | | must "../remote"; |
| description | | description |
| "Local pseudowire label"; | | "Local pseudowire label"; |
| } | | } |
| leaf remote { | | leaf remote { |
| type uint32 { | | type uint32 { |
| range "16..1048575" { | | range "16..1048575" { |
| description | | description |
| "Remote pseudowire label"; | | "Remote pseudowire label"; |
| } | | } |
| } | | } |
| must "../local"; | | must "../local"; |
| description | | description |
| "Remote pseudowire label"; | | "Remote pseudowire label"; |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| leaf pw-class { | | leaf pw-class { |
| type xr:Cisco-ios-xr-string { | | type xr:Cisco-ios-xr-string { |
| length "1..32" { | | length "1..32" { |
| description | | description |
| "Pseudowire-class name"; | | "Pseudowire-class name"; |
| } | | } |
| } | | } |
| description | | description |
| "PW class template name to use for this XC"; | | "PW class template name to use for this XC"; |
| } | | } |
| container tag-impose { | | container tag-impose { |
| description | | description |
| "tag impose mode"; | | "tag impose mode"; |
| leaf vlan { | | leaf vlan { |
| type uint32 { | | type uint32 { |
| range "1..4094" { | | range "1..4094" { |
| description | | description |
| "vlan tagged mode"; | | "vlan tagged mode"; |
| } | | } |
| } | | } |
| description | | description |
| "vlan tagged mode"; | | "vlan tagged mode"; |
| } | | } |
| } | | } |
| leaf bandwidth { | | leaf bandwidth { |
| type uint32 { | | type uint32 { |
| range "0..4294967295" { | | range "0..4294967295" { |
| description | | description |
| "PW Bandwidth"; | | "PW Bandwidth"; |
| } | | } |
| } | | } |
| description | | description |
| "bandwidth"; | | "bandwidth"; |
| } | | } |
| container source { | | container source { |
| description | | description |
| "Source address of PW"; | | "Source address of PW"; |
| leaf ipv6-address { | | leaf ipv6-address { |
| type inet:ipv6-address-no-zone; | | type inet:ipv6-address-no-zone; |
| description | | description |
| "Source IPv6 address of PW"; | | "Source IPv6 address of PW"; |
| } | | } |
| } | | } |
| container l2tp { | | container l2tp { |
| description | | description |
| "L2TP PW"; | | "L2TP PW"; |
| container static { | | container static { |
| presence "Indicates a static node is configured."; | | presence "Indicates a static node is configured."; |
| description | | description |
| "L2TP PW static"; | | "L2TP PW static"; |
| container local { | | container local { |
| description | | description |
| "L2TP PW static local"; | | "L2TP PW static local"; |
| leaf session { | | leaf session { |
| type uint32 { | | type uint32 { |
| range "1..1023" { | | range "1..1023" { |
| description | | description |
| "L2TP PW static local session ID"; | | "L2TP PW static local session ID"; |
| } | | } |
| } | | } |
| description | | description |
| "L2TP PW static local session ID"; | | "L2TP PW static local session ID"; |
| } | | } |
| container cookie { | | container cookie { |
| description | | description |
| "L2TP PW static local cookie settings"; | | "L2TP PW static local cookie settings"; |
| container size { | | container size { |
| description | | description |
| "L2TP PW static local cookie size settings"; | | "L2TP PW static local cookie size settings"; |
| container zero { | | container zero { |
| presence "Indicates a zero node is configured."; | | presence "Indicates a zero node is configured."; |
| description | | description |
| "The cookie size is zero bytes"; | | "The cookie size is zero bytes"; |
| } | | } |
| container four { | | container four { |
| presence "Indicates a four node is configured."; | | presence "Indicates a four node is configured."; |
| description | | description |
| "The cookie size is four bytes"; | | "The cookie size is four bytes"; |
| leaf value { | | leaf value { |
| type uint32 { | | type uint32 { |
| range "0..4294967295" { | | range "0..4294967295" { |
| description | | description |
| "Lower 4 bytes value"; | | "Lower 4 bytes value"; |
| } | | } |
| } | | } |
| mandatory true; | | mandatory true; |
| description | | description |
| "The value of the cookie"; | | "The value of the cookie"; |
| } | | } |
| } | | } |
| container eight { | | container eight { |
| presence "Indicates a eight node is configured."; | | presence "Indicates a eight node is configured."; |
| description | | description |
| "The cookie size is eight bytes"; | | "The cookie size is eight bytes"; |
| leaf value { | | leaf value { |
| type uint32 { | | type uint32 { |
| range "0..4294967295" { | | range "0..4294967295" { |
| description | | description |
| "Lower 4 bytes value"; | | "Lower 4 bytes value"; |
| } | | } |
| } | | } |
| must "../higher-4-bytes-value"; | | must "../higher-4-bytes-value"; |
| mandatory true; | | mandatory true; |
| description | | description |
| "The value of the cookie"; | | "The value of the cookie"; |
| } | | } |
| leaf higher-4-bytes-value { | | leaf higher-4-bytes-value { |
| type uint32 { | | type uint32 { |
| range "0..4294967295" { | | range "0..4294967295" { |
| description | | description |
| "Higher 4 bytes value"; | | "Higher 4 bytes value"; |
| } | | } |
| } | | } |
| must "../value"; | | must "../value"; |
| mandatory true; | | mandatory true; |
| description | | description |
| "Higher 4 bytes value"; | | "Higher 4 bytes value"; |
| } | | } |
| } | | } |
| } | | } |
| container secondary { | | container secondary { |
| description | | description |
| "L2TP PW static secondary local cookie settings"; | | "L2TP PW static secondary local cookie settings"; |
| container size { | | container size { |
| description | | description |
| "L2TP PW static local cookie size settings"; | | "L2TP PW static local cookie size settings"; |
| container zero { | | container zero { |
| presence "Indicates a zero node is configured."; | | presence "Indicates a zero node is configured."; |
| description | | description |
| "The cookie size is zero bytes"; | | "The cookie size is zero bytes"; |
| } | | } |
| container four { | | container four { |
| presence "Indicates a four node is configured."; | | presence "Indicates a four node is configured."; |
| description | | description |
| "The cookie size is four bytes"; | | "The cookie size is four bytes"; |
| leaf value { | | leaf value { |
| type uint32 { | | type uint32 { |
| range "0..4294967295" { | | range "0..4294967295" { |
| description | | description |
| "Lower 4 bytes value"; | | "Lower 4 bytes value"; |
| } | | } |
| } | | } |
| mandatory true; | | mandatory true; |
| description | | description |
| "The value of the cookie"; | | "The value of the cookie"; |
| } | | } |
| } | | } |
| container eight { | | container eight { |
| presence "Indicates a eight node is configured."; | | presence "Indicates a eight node is configured."; |
| description | | description |
| "The cookie size is eight bytes"; | | "The cookie size is eight bytes"; |
| leaf value { | | leaf value { |
| type uint32 { | | type uint32 { |
| range "0..4294967295" { | | range "0..4294967295" { |
| description | | description |
| "Lower 4 bytes value"; | | "Lower 4 bytes value"; |
| } | | } |
| } | | } |
| must "../higher-4-bytes-value"; | | must "../higher-4-bytes-value"; |
| mandatory true; | | mandatory true; |
| description | | description |
| "The value of the cookie"; | | "The value of the cookie"; |
| } | | } |
| leaf higher-4-bytes-value { | | leaf higher-4-bytes-value { |
| type uint32 { | | type uint32 { |
| range "0..4294967295" { | | range "0..4294967295" { |
| description | | description |
| "Higher 4 bytes value"; | | "Higher 4 bytes value"; |
| } | | } |
| } | | } |
| must "../value"; | | must "../value"; |
| mandatory true; | | mandatory true; |
| description | | description |
| "Higher 4 bytes value"; | | "Higher 4 bytes value"; |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| container remote { | | container remote { |
| description | | description |
| "L2TP PW static remote"; | | "L2TP PW static remote"; |
| leaf session { | | leaf session { |
| type uint32 { | | type uint32 { |
| range "1..1023" { | | range "1..1023" { |
| description | | description |
| "L2TP PW static remote session ID"; | | "L2TP PW static remote session ID"; |
| } | | } |
| } | | } |
| description | | description |
| "L2TP PW static remote session ID"; | | "L2TP PW static remote session ID"; |
| } | | } |
| container cookie { | | container cookie { |
| description | | description |
| "L2TP PW static remote cookie settings"; | | "L2TP PW static remote cookie settings"; |
| container size { | | container size { |
| description | | description |
| "L2TP PW static remote cookie size settings"; | | "L2TP PW static remote cookie size settings"; |
| container zero { | | container zero { |
| presence "Indicates a zero node is configured."; | | presence "Indicates a zero node is configured."; |
| description | | description |
| "The cookie size is zero bytes"; | | "The cookie size is zero bytes"; |
| } | | } |
| container four { | | container four { |
| presence "Indicates a four node is configured."; | | presence "Indicates a four node is configured."; |
| description | | description |
| "The cookie size is four bytes"; | | "The cookie size is four bytes"; |
| leaf value { | | leaf value { |
| type uint32 { | | type uint32 { |
| range "0..4294967295" { | | range "0..4294967295" { |
| description | | description |
| "Lower 4 bytes value"; | | "Lower 4 bytes value"; |
| } | | } |
| } | | } |
| mandatory true; | | mandatory true; |
| description | | description |
| "The value of the cookie"; | | "The value of the cookie"; |
| } | | } |
| } | | } |
| container eight { | | container eight { |
| presence "Indicates a eight node is configured."; | | presence "Indicates a eight node is configured."; |
| description | | description |
| "The cookie size is eight bytes"; | | "The cookie size is eight bytes"; |
| leaf value { | | leaf value { |
| type uint32 { | | type uint32 { |
| range "0..4294967295" { | | range "0..4294967295" { |
| description | | description |
| "Lower 4 bytes value"; | | "Lower 4 bytes value"; |
| } | | } |
| } | | } |
| must "../higher-4-bytes-value"; | | must "../higher-4-bytes-value"; |
| mandatory true; | | mandatory true; |
| description | | description |
| "The value of the cookie"; | | "The value of the cookie"; |
| } | | } |
| leaf higher-4-bytes-value { | | leaf higher-4-bytes-value { |
| type uint32 { | | type uint32 { |
| range "0..4294967295" { | | range "0..4294967295" { |
| description | | description |
| "Higher 4 bytes value"; | | "Higher 4 bytes value"; |
| } | | } |
| } | | } |
| must "../value"; | | must "../value"; |
| mandatory true; | | mandatory true; |
| description | | description |
| "Higher 4 bytes value"; | | "Higher 4 bytes value"; |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| n | | n | container ipv6s { |
| | | description |
| | | "IPv4"; |
| | | list ipv6 { |
| | | key "address pw-id"; |
| | | description |
| | | "IPv6"; |
| | | leaf address { |
| | | type inet:ipv6-address-no-zone; |
| | | description |
| | | "IPv6"; |
| | | } |
| | | leaf pw-id { |
| | | type uint32 { |
| | | range "1..4294967295" { |
| | | description |
| | | "Pseudowire ID"; |
| | | } |
| | | } |
| | | description |
| | | "Specify the pseudowire id"; |
| | | } |
| | | container backup { |
| | | description |
| | | "Backup pseudowire for the cross connect"; |
| | | container neighbors { |
| | | description |
| | | "Specify the peer to cross connect"; |
| | | list neighbor { |
| | | key "address pw-id"; |
| | | description |
| | | "Specify the peer to cross connect"; |
| | | leaf address { |
| | | type inet:ipv4-address-no-zone; |
| | | description |
| | | "Specify the peer to cross connect"; |
| | | } |
| | | leaf pw-id { |
| | | type uint32 { |
| | | range "1..4294967295" { |
| | | description |
| | | "Pseudowire ID"; |
| | | } |
| | | } |
| | | description |
| | | "Specify the pseudowire id"; |
| | | } |
| | | container mpls { |
| | | description |
| | | "MPLS L2VPN PW command"; |
| | | container static { |
| | | description |
| | | "MPLS L2VPN static settings"; |
| | | container label { |
| | | description |
| | | "MPLS L2VPN static labels"; |
| | | leaf local { |
| | | type uint32 { |
| | | range "16..1048575" { |
| | | description |
| | | "Local pseudowire label"; |
| | | } |
| | | } |
| | | must "../remote"; |
| | | description |
| | | "Local pseudowire label"; |
| | | } |
| | | leaf remote { |
| | | type uint32 { |
| | | range "16..1048575" { |
| | | description |
| | | "Remote pseudowire label"; |
| | | } |
| | | } |
| | | must "../local"; |
| | | description |
| | | "Remote pseudowire label"; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | leaf pw-class { |
| | | type xr:Cisco-ios-xr-string { |
| | | length "1..32" { |
| | | description |
| | | "Pseudowire-class name"; |
| | | } |
| | | } |
| | | description |
| | | "PW class template name to use for the backup PW"; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | container mpls { |
| | | description |
| | | "MPLS L2VPN PW command"; |
| | | container static { |
| | | description |
| | | "MPLS L2VPN static settings"; |
| | | container label { |
| | | description |
| | | "MPLS L2VPN static labels"; |
| | | leaf local { |
| | | type uint32 { |
| | | range "16..1048575" { |
| | | description |
| | | "Local pseudowire label"; |
| | | } |
| | | } |
| | | must "../remote"; |
| | | description |
| | | "Local pseudowire label"; |
| | | } |
| | | leaf remote { |
| | | type uint32 { |
| | | range "16..1048575" { |
| | | description |
| | | "Remote pseudowire label"; |
| | | } |
| | | } |
| | | must "../local"; |
| | | description |
| | | "Remote pseudowire label"; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | leaf pw-class { |
| | | type xr:Cisco-ios-xr-string { |
| | | length "1..32" { |
| | | description |
| | | "Pseudowire-class name"; |
| | | } |
| | | } |
| | | description |
| | | "PW class template name to use for this XC"; |
| | | } |
| | | container tag-impose { |
| | | description |
| | | "tag impose mode"; |
| | | leaf vlan { |
| | | type uint32 { |
| | | range "1..4094" { |
| | | description |
| | | "vlan tagged mode"; |
| | | } |
| | | } |
| | | description |
| | | "vlan tagged mode"; |
| | | } |
| | | } |
| | | leaf bandwidth { |
| | | type uint32 { |
| | | range "0..4294967295" { |
| | | description |
| | | "PW Bandwidth"; |
| | | } |
| | | } |
| | | description |
| | | "bandwidth"; |
| | | } |
| | | container source { |
| | | description |
| | | "Source address of PW"; |
| | | leaf ipv6-address { |
| | | type inet:ipv6-address-no-zone; |
| | | description |
| | | "Source IPv6 address of PW"; |
| | | } |
| | | } |
| | | container l2tp { |
| | | description |
| | | "L2TP PW"; |
| | | container static { |
| | | presence "Indicates a static node is configured."; |
| | | description |
| | | "L2TP PW static"; |
| | | container local { |
| | | description |
| | | "L2TP PW static local"; |
| | | leaf session { |
| | | type uint32 { |
| | | range "1..1023" { |
| | | description |
| | | "L2TP PW static local session ID"; |
| | | } |
| | | } |
| | | description |
| | | "L2TP PW static local session ID"; |
| | | } |
| | | container cookie { |
| | | description |
| | | "L2TP PW static local cookie settings"; |
| | | container size { |
| | | description |
| | | "L2TP PW static local cookie size settings"; |
| | | container zero { |
| | | presence "Indicates a zero node is configured."; |
| | | description |
| | | "The cookie size is zero bytes"; |
| | | } |
| | | container four { |
| | | presence "Indicates a four node is configured."; |
| | | description |
| | | "The cookie size is four bytes"; |
| | | leaf value { |
| | | type uint32 { |
| | | range "0..4294967295" { |
| | | description |
| | | "Lower 4 bytes value"; |
| | | } |
| | | } |
| | | mandatory true; |
| | | description |
| | | "The value of the cookie"; |
| | | } |
| | | } |
| | | container eight { |
| | | presence "Indicates a eight node is configured."; |
| | | description |
| | | "The cookie size is eight bytes"; |
| | | leaf value { |
| | | type uint32 { |
| | | range "0..4294967295" { |
| | | description |
| | | "Lower 4 bytes value"; |
| | | } |
| | | } |
| | | must "../higher-4-bytes-value"; |
| | | mandatory true; |
| | | description |
| | | "The value of the cookie"; |
| | | } |
| | | leaf higher-4-bytes-value { |
| | | type uint32 { |
| | | range "0..4294967295" { |
| | | description |
| | | "Higher 4 bytes value"; |
| | | } |
| | | } |
| | | must "../value"; |
| | | mandatory true; |
| | | description |
| | | "Higher 4 bytes value"; |
| | | } |
| | | } |
| | | } |
| | | container secondary { |
| | | description |
| | | "L2TP PW static secondary local cookie settings"; |
| | | container size { |
| | | description |
| | | "L2TP PW static local cookie size settings"; |
| | | container zero { |
| | | presence "Indicates a zero node is configured."; |
| | | description |
| | | "The cookie size is zero bytes"; |
| | | } |
| | | container four { |
| | | presence "Indicates a four node is configured."; |
| | | description |
| | | "The cookie size is four bytes"; |
| | | leaf value { |
| | | type uint32 { |
| | | range "0..4294967295" { |
| | | description |
| | | "Lower 4 bytes value"; |
| | | } |
| | | } |
| | | mandatory true; |
| | | description |
| | | "The value of the cookie"; |
| | | } |
| | | } |
| | | container eight { |
| | | presence "Indicates a eight node is configured."; |
| | | description |
| | | "The cookie size is eight bytes"; |
| | | leaf value { |
| | | type uint32 { |
| | | range "0..4294967295" { |
| | | description |
| | | "Lower 4 bytes value"; |
| | | } |
| | | } |
| | | must "../higher-4-bytes-value"; |
| | | mandatory true; |
| | | description |
| | | "The value of the cookie"; |
| | | } |
| | | leaf higher-4-bytes-value { |
| | | type uint32 { |
| | | range "0..4294967295" { |
| | | description |
| | | "Higher 4 bytes value"; |
| | | } |
| | | } |
| | | must "../value"; |
| | | mandatory true; |
| | | description |
| | | "Higher 4 bytes value"; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | container remote { |
| | | description |
| | | "L2TP PW static remote"; |
| | | leaf session { |
| | | type uint32 { |
| | | range "1..1023" { |
| | | description |
| | | "L2TP PW static remote session ID"; |
| | | } |
| | | } |
| | | description |
| | | "L2TP PW static remote session ID"; |
| | | } |
| | | container cookie { |
| | | description |
| | | "L2TP PW static remote cookie settings"; |
| | | container size { |
| | | description |
| | | "L2TP PW static remote cookie size settings"; |
| | | container zero { |
| | | presence "Indicates a zero node is configured."; |
| | | description |
| | | "The cookie size is zero bytes"; |
| | | } |
| | | container four { |
| | | presence "Indicates a four node is configured."; |
| | | description |
| | | "The cookie size is four bytes"; |
| | | leaf value { |
| | | type uint32 { |
| | | range "0..4294967295" { |
| | | description |
| | | "Lower 4 bytes value"; |
| | | } |
| | | } |
| | | mandatory true; |
| | | description |
| | | "The value of the cookie"; |
| | | } |
| | | } |
| | | container eight { |
| | | presence "Indicates a eight node is configured."; |
| | | description |
| | | "The cookie size is eight bytes"; |
| | | leaf value { |
| | | type uint32 { |
| | | range "0..4294967295" { |
| | | description |
| | | "Lower 4 bytes value"; |
| | | } |
| | | } |
| | | must "../higher-4-bytes-value"; |
| | | mandatory true; |
| | | description |
| | | "The value of the cookie"; |
| | | } |
| | | leaf higher-4-bytes-value { |
| | | type uint32 { |
| | | range "0..4294967295" { |
| | | description |
| | | "Higher 4 bytes value"; |
| | | } |
| | | } |
| | | must "../value"; |
| | | mandatory true; |
| | | description |
| | | "Higher 4 bytes value"; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| container routeds { | | container routeds { |
| description | | description |
| "Specify a routed PW"; | | "Specify a routed PW"; |
| list routed { | | list routed { |
| key "global-id target-l2-prefix target-ac-id source"; | | key "global-id target-l2-prefix target-ac-id source"; |
| description | | description |
| "Specify a routed PW"; | | "Specify a routed PW"; |
| leaf global-id { | | leaf global-id { |
| type uint32 { | | type uint32 { |
| range "1..4294967295" { | | range "1..4294967295" { |
| description | | description |
| "Four Byte Global Id"; | | "Four Byte Global Id"; |
| } | | } |
| } | | } |
| description | | description |
| "Specify a routed PW"; | | "Specify a routed PW"; |
| } | | } |
| leaf target-l2-prefix { | | leaf target-l2-prefix { |
| type inet:ipv4-address-no-zone; | | type inet:ipv4-address-no-zone; |
| description | | description |
| "Target L2 prefix"; | | "Target L2 prefix"; |
| } | | } |
| leaf target-ac-id { | | leaf target-ac-id { |
| type uint32 { | | type uint32 { |
| range "1..4294967295" { | | range "1..4294967295" { |
| description | | description |
| "Target AC id"; | | "Target AC id"; |
| } | | } |
| } | | } |
| description | | description |
| "Target AC id"; | | "Target AC id"; |
| } | | } |
| leaf source { | | leaf source { |
| type uint32 { | | type uint32 { |
| range "1..4294967295" { | | range "1..4294967295" { |
| description | | description |
| "Local AC id (hex or decimal format)"; | | "Local AC id (hex or decimal format)"; |
| } | | } |
| } | | } |
| description | | description |
| "Source addresss of the routed PW"; | | "Source addresss of the routed PW"; |
| } | | } |
| leaf pw-class { | | leaf pw-class { |
| type xr:Cisco-ios-xr-string { | | type xr:Cisco-ios-xr-string { |
| length "1..32" { | | length "1..32" { |
| description | | description |
| "Pseudowire-class name"; | | "Pseudowire-class name"; |
| } | | } |
| } | | } |
| description | | description |
| "PW class template name to use for this XC"; | | "PW class template name to use for this XC"; |
| } | | } |
| container tag-impose { | | container tag-impose { |
| description | | description |
| "tag impose mode"; | | "tag impose mode"; |
| leaf vlan { | | leaf vlan { |
| type uint32 { | | type uint32 { |
| range "1..4094" { | | range "1..4094" { |
| description | | description |
| "vlan tagged mode"; | | "vlan tagged mode"; |
| } | | } |
| } | | } |
| description | | description |
| "vlan tagged mode"; | | "vlan tagged mode"; |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| container evpn { | | container evpn { |
| description | | description |
| "Specify the Ethernet VPN"; | | "Specify the Ethernet VPN"; |
| container evi { | | container evi { |
| description | | description |
| "Ethernet VPN Identifier"; | | "Ethernet VPN Identifier"; |
| container targets { | | container targets { |
| description | | description |
| "Specify remote attachment circuit identifier"; | | "Specify remote attachment circuit identifier"; |
| list target { | | list target { |
| key "vpn-id remote-ac-id source"; | | key "vpn-id remote-ac-id source"; |
| description | | description |
| "Specify remote attachment circuit identifier"; | | "Specify remote attachment circuit identifier"; |
| leaf vpn-id { | | leaf vpn-id { |
| type uint32 { | | type uint32 { |
| range "1..65534" { | | range "1..65534" { |
| description | | description |
| "Ethernet VPN ID to set"; | | "Ethernet VPN ID to set"; |
| } | | } |
| } | | } |
| description | | description |
| "Ethernet VPN Identifier"; | | "Ethernet VPN Identifier"; |
| } | | } |
| leaf remote-ac-id { | | leaf remote-ac-id { |
| type uint32 { | | type uint32 { |
| range "1..4294967294" { | | range "1..4294967294" { |
| description | | description |
| "Remote ac-id"; | | "Remote ac-id"; |
| } | | } |
| } | | } |
| description | | description |
| "Specify remote attachment circuit identifier"; | | "Specify remote attachment circuit identifier"; |
| } | | } |
| leaf source { | | leaf source { |
| type uint32 { | | type uint32 { |
| range "1..4294967294" { | | range "1..4294967294" { |
| description | | description |
| "Source ac-id"; | | "Source ac-id"; |
| } | | } |
| } | | } |
| description | | description |
| "Specify source attachment circuit identifier"; | | "Specify source attachment circuit identifier"; |
| } | | } |
| leaf pw-class { | | leaf pw-class { |
| type xr:Cisco-ios-xr-string { | | type xr:Cisco-ios-xr-string { |
| length "1..32" { | | length "1..32" { |
| description | | description |
| "Pseudowire-class name"; | | "Pseudowire-class name"; |
| } | | } |
| } | | } |
| description | | description |
| "PW class template name to use"; | | "PW class template name to use"; |
| } | | } |
| } | | } |
| } | | } |
| container services { | | container services { |
| description | | description |
| "Specify service ID (used as local and remote ac-id)"; | | "Specify service ID (used as local and remote ac-id)"; |
| list service { | | list service { |
| key "vpn-id service-id"; | | key "vpn-id service-id"; |
| description | | description |
| "Specify service ID (used as local and remote ac-id)"; | | "Specify service ID (used as local and remote ac-id)"; |
| leaf vpn-id { | | leaf vpn-id { |
| type uint32 { | | type uint32 { |
| range "1..65534" { | | range "1..65534" { |
| description | | description |
| "Ethernet VPN ID to set"; | | "Ethernet VPN ID to set"; |
| } | | } |
| } | | } |
| description | | description |
| "Ethernet VPN Identifier"; | | "Ethernet VPN Identifier"; |
| } | | } |
| leaf service-id { | | leaf service-id { |
| type uint32 { | | type uint32 { |
| range "1..4294967294" { | | range "1..4294967294" { |
| description | | description |
| "Service ID"; | | "Service ID"; |
| } | | } |
| } | | } |
| description | | description |
| "Specify service ID (used as local and remote ac-id)"; | | "Specify service ID (used as local and remote ac-id)"; |
| } | | } |
| leaf pw-class { | | leaf pw-class { |
| type xr:Cisco-ios-xr-string { | | type xr:Cisco-ios-xr-string { |
| length "1..32" { | | length "1..32" { |
| description | | description |
| "Pseudowire-class name"; | | "Pseudowire-class name"; |
| } | | } |
| } | | } |
| description | | description |
| "PW class template name to use"; | | "PW class template name to use"; |
| } | | } |
| } | | } |
| } | | } |
| container segment-routing-targets { | | container segment-routing-targets { |
| description | | description |
| "Specify remote attachment circuit identifier"; | | "Specify remote attachment circuit identifier"; |
| list target { | | list target { |
| must "segment-routing/srv6"; | | must "segment-routing/srv6"; |
| key "vpn-id remote-ac-id source"; | | key "vpn-id remote-ac-id source"; |
| description | | description |
| "Specify remote attachment circuit identifier"; | | "Specify remote attachment circuit identifier"; |
| leaf vpn-id { | | leaf vpn-id { |
| type uint32 { | | type uint32 { |
| range "1..65534" { | | range "1..65534" { |
| description | | description |
| "Ethernet VPN ID to set"; | | "Ethernet VPN ID to set"; |
| } | | } |
| } | | } |
| description | | description |
| "Ethernet VPN Identifier"; | | "Ethernet VPN Identifier"; |
| } | | } |
| leaf remote-ac-id { | | leaf remote-ac-id { |
| type uint32 { | | type uint32 { |
| range "1..4294967294" { | | range "1..4294967294" { |
| description | | description |
| "Remote ac-id"; | | "Remote ac-id"; |
| } | | } |
| } | | } |
| description | | description |
| "Specify remote attachment circuit identifier"; | | "Specify remote attachment circuit identifier"; |
| } | | } |
| leaf source { | | leaf source { |
| type uint32 { | | type uint32 { |
| range "1..4294967294" { | | range "1..4294967294" { |
| description | | description |
| "Source ac-id"; | | "Source ac-id"; |
| } | | } |
| } | | } |
| description | | description |
| "Specify source attachment circuit identifier"; | | "Specify source attachment circuit identifier"; |
| } | | } |
| container segment-routing { | | container segment-routing { |
| description | | description |
| "Configure Segment Routing VPWS Instance"; | | "Configure Segment Routing VPWS Instance"; |
| container srv6 { | | container srv6 { |
| presence "Indicates a srv6 node is configured."; | | presence "Indicates a srv6 node is configured."; |
| description | | description |
| "Configure SRv6 VPWS Instance"; | | "Configure SRv6 VPWS Instance"; |
| leaf locator { | | leaf locator { |
| type xr:Cisco-ios-xr-string { | | type xr:Cisco-ios-xr-string { |
| length "1..58" { | | length "1..58" { |
| description | | description |
| "Specify locator name"; | | "Specify locator name"; |
| } | | } |
| pattern "[a-z0-9A-Z][a-z0-9A-Z_.:]*"; | | pattern "[a-z0-9A-Z][a-z0-9A-Z_.:]*"; |
| } | | } |
| description | | description |
| "PW locator to use for EVPN SID allocation"; | | "PW locator to use for EVPN SID allocation"; |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| container segment-routing-services { | | container segment-routing-services { |
| description | | description |
| "Specify service ID (used as local and remote ac-id)"; | | "Specify service ID (used as local and remote ac-id)"; |
| list service { | | list service { |
| must "segment-routing/srv6"; | | must "segment-routing/srv6"; |
| key "vpn-id service-id"; | | key "vpn-id service-id"; |
| description | | description |
| "Specify service ID (used as local and remote ac-id)"; | | "Specify service ID (used as local and remote ac-id)"; |
| leaf vpn-id { | | leaf vpn-id { |
| type uint32 { | | type uint32 { |
| range "1..65534" { | | range "1..65534" { |
| description | | description |
| "Ethernet VPN ID to set"; | | "Ethernet VPN ID to set"; |
| } | | } |
| } | | } |
| description | | description |
| "Ethernet VPN Identifier"; | | "Ethernet VPN Identifier"; |
| } | | } |
| leaf service-id { | | leaf service-id { |
| type uint32 { | | type uint32 { |
| range "1..4294967294" { | | range "1..4294967294" { |
| description | | description |
| "Service ID"; | | "Service ID"; |
| } | | } |
| } | | } |
| description | | description |
| "Specify service ID (used as local and remote ac-id)"; | | "Specify service ID (used as local and remote ac-id)"; |
| } | | } |
| container segment-routing { | | container segment-routing { |
| description | | description |
| "Configure Segment Routing VPWS Instance"; | | "Configure Segment Routing VPWS Instance"; |
| container srv6 { | | container srv6 { |
| presence "Indicates a srv6 node is configured."; | | presence "Indicates a srv6 node is configured."; |
| description | | description |
| "Configure SRv6 VPWS Instance"; | | "Configure SRv6 VPWS Instance"; |
| leaf locator { | | leaf locator { |
| type xr:Cisco-ios-xr-string { | | type xr:Cisco-ios-xr-string { |
| length "1..58" { | | length "1..58" { |
| description | | description |
| "Specify locator name"; | | "Specify locator name"; |
| } | | } |
| pattern "[a-z0-9A-Z][a-z0-9A-Z_.:]*"; | | pattern "[a-z0-9A-Z][a-z0-9A-Z_.:]*"; |
| } | | } |
| description | | description |
| "PW locator to use for EVPN SID allocation"; | | "PW locator to use for EVPN SID allocation"; |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| container monitor-sessions { | | container monitor-sessions { |
| description | | description |
| "Specify the monitor session"; | | "Specify the monitor session"; |
| list monitor-session { | | list monitor-session { |
| key "monitor-session-name"; | | key "monitor-session-name"; |
| description | | description |
| "Specify the monitor session"; | | "Specify the monitor session"; |
| leaf monitor-session-name { | | leaf monitor-session-name { |
| type string { | | type string { |
| length "1..64" { | | length "1..64" { |
| description | | description |
| "Name of the monitor session"; | | "Name of the monitor session"; |
| } | | } |
| } | | } |
| description | | description |
| "Specify the monitor session"; | | "Specify the monitor session"; |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| container mp2mps { | | container mp2mps { |
| description | | description |
| "Specify the MP2MP instance name"; | | "Specify the MP2MP instance name"; |
| list mp2mp { | | list mp2mp { |
| key "instance-name"; | | key "instance-name"; |
| description | | description |
| "Specify the MP2MP instance name"; | | "Specify the MP2MP instance name"; |
| leaf instance-name { | | leaf instance-name { |
| type xr:Cisco-ios-xr-string { | | type xr:Cisco-ios-xr-string { |
| length "1..26" { | | length "1..26" { |
| description | | description |
| "Name of the MP2MP instance"; | | "Name of the MP2MP instance"; |
| } | | } |
| } | | } |
| description | | description |
| "Specify the MP2MP instance name"; | | "Specify the MP2MP instance name"; |
| } | | } |
| leaf vpn-id { | | leaf vpn-id { |
| type uint32 { | | type uint32 { |
| range "1..4294967295" { | | range "1..4294967295" { |
| description | | description |
| "Value of the VPN ID"; | | "Value of the VPN ID"; |
| } | | } |
| } | | } |
| description | | description |
| "VPN Identifier (VPN ID)"; | | "VPN Identifier (VPN ID)"; |
| } | | } |
| leaf mtu { | | leaf mtu { |
| type uint32 { | | type uint32 { |
| range "64..65535" { | | range "64..65535" { |
| description | | description |
| "Value of the MTU"; | | "Value of the MTU"; |
| } | | } |
| } | | } |
| description | | description |
| "Set maximum transmission unit (payload) for this VPN MP2MP Instance"; | | "Set maximum transmission unit (payload) for this VPN MP2MP Instance"; |
| } | | } |
| container shutdown { | | container shutdown { |
| presence "Indicates a shutdown node is configured."; | | presence "Indicates a shutdown node is configured."; |
| description | | description |
| "shutdown the L2VPN MP2MP Instance"; | | "shutdown the L2VPN MP2MP Instance"; |
| } | | } |
| leaf l2-encapsulation { | | leaf l2-encapsulation { |
| type enumeration { | | type enumeration { |
| enum "vlan" { | | enum "vlan" { |
| value 4; | | value 4; |
| description | | description |
| "Ethernet VLAN encapsulation"; | | "Ethernet VLAN encapsulation"; |
| } | | } |
| enum "ethernet" { | | enum "ethernet" { |
| value 5; | | value 5; |
| description | | description |
| "Ethernet encapsulation"; | | "Ethernet encapsulation"; |
| } | | } |
| } | | } |
| description | | description |
| "Configure the L2 encapsulation for this L2VPN MP2MP Instance"; | | "Configure the L2 encapsulation for this L2VPN MP2MP Instance"; |
| } | | } |
| leaf interworking { | | leaf interworking { |
| type enumeration { | | type enumeration { |
| enum "ethernet" { | | enum "ethernet" { |
| value 1; | | value 1; |
| description | | description |
| "Ethernet interworking"; | | "Ethernet interworking"; |
| } | | } |
| } | | } |
| description | | description |
| "Configure the interworking option for this L2VPN MP2MP Instance"; | | "Configure the interworking option for this L2VPN MP2MP Instance"; |
| } | | } |
| container control-word { | | container control-word { |
| description | | description |
| "Set control-word option for this VPN MP2MP Instance"; | | "Set control-word option for this VPN MP2MP Instance"; |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Disable control-word"; | | "Disable control-word"; |
| } | | } |
| } | | } |
| container autodiscovery { | | container autodiscovery { |
| description | | description |
| "Enable auto-discovery in this MP2MP"; | | "Enable auto-discovery in this MP2MP"; |
| container bgp { | | container bgp { |
| presence "Indicates a bgp node is configured."; | | presence "Indicates a bgp node is configured."; |
| description | | description |
| "Enable BGP auto-discovery in this MP2MP"; | | "Enable BGP auto-discovery in this MP2MP"; |
| container rd { | | container rd { |
| description | | description |
| "route distinguisher"; | | "route distinguisher"; |
| container auto { | | container auto { |
| must "not(../two-byte-as-number or ../four-byte-as-number or ../ipv4-address)"; | | must "not(../two-byte-as-number or ../four-byte-as-number or ../ipv4-address)"; |
| presence "Indicates a auto node is configured."; | | presence "Indicates a auto node is configured."; |
| description | | description |
| "Automatic route distinguisher"; | | "Automatic route distinguisher"; |
| } | | } |
| leaf two-byte-as-number { | | leaf two-byte-as-number { |
| type uint32 { | | type uint32 { |
| range "1..65535" { | | range "1..65535" { |
| description | | description |
| "Two Byte AS number"; | | "Two Byte AS number"; |
| } | | } |
| } | | } |
| n | must "not(../four-byte-as-number or ../ipv4-address) and ../two-byte-as-assigned-number"; | n | must "not(../four-byte-as-number or ../ipv4-address)"; |
| description | | description |
| "Two Byte AS number"; | | "Two Byte AS number"; |
| } | | } |
| leaf two-byte-as-assigned-number { | | leaf two-byte-as-assigned-number { |
| type uint32 { | | type uint32 { |
| range "0..4294967295" { | | range "0..4294967295" { |
| description | | description |
| "AS:nn (hex or decimal format)"; | | "AS:nn (hex or decimal format)"; |
| } | | } |
| } | | } |
| must "../two-byte-as-number"; | | must "../two-byte-as-number"; |
| description | | description |
| "AS:nn (hex or decimal format)"; | | "AS:nn (hex or decimal format)"; |
| } | | } |
| leaf four-byte-as-number { | | leaf four-byte-as-number { |
| type uint32 { | | type uint32 { |
| range "65536..4294967295" { | | range "65536..4294967295" { |
| description | | description |
| "Four Byte AS number"; | | "Four Byte AS number"; |
| } | | } |
| } | | } |
| n | must "not(../two-byte-as-number or ../ipv4-address) and ../four-byte-as-assigned-number"; | n | must "not(../two-byte-as-number or ../ipv4-address)"; |
| description | | description |
| "Four Byte AS number"; | | "Four Byte AS number"; |
| } | | } |
| leaf four-byte-as-assigned-number { | | leaf four-byte-as-assigned-number { |
| type uint32 { | | type uint32 { |
| range "0..65535" { | | range "0..65535" { |
| description | | description |
| "AS:nn (hex or decimal format)"; | | "AS:nn (hex or decimal format)"; |
| } | | } |
| } | | } |
| must "../four-byte-as-number"; | | must "../four-byte-as-number"; |
| description | | description |
| "AS:nn (hex or decimal format)"; | | "AS:nn (hex or decimal format)"; |
| } | | } |
| leaf ipv4-address { | | leaf ipv4-address { |
| type inet:ipv4-address-no-zone; | | type inet:ipv4-address-no-zone; |
| n | must "not(../two-byte-as-number or ../four-byte-as-number) and ../ipv4-address-assigned-number"; | n | must "not(../two-byte-as-number or ../four-byte-as-number)"; |
| description | | description |
| "IP address"; | | "IP address"; |
| } | | } |
| leaf ipv4-address-assigned-number { | | leaf ipv4-address-assigned-number { |
| type uint32 { | | type uint32 { |
| range "0..65535" { | | range "0..65535" { |
| description | | description |
| "IP-address:nn (hex or decimal format)"; | | "IP-address:nn (hex or decimal format)"; |
| } | | } |
| } | | } |
| must "../ipv4-address"; | | must "../ipv4-address"; |
| description | | description |
| "IP-address:nn (hex or decimal format)"; | | "IP-address:nn (hex or decimal format)"; |
| } | | } |
| } | | } |
| container route-target { | | container route-target { |
| description | | description |
| "Route Target"; | | "Route Target"; |
| container import { | | container import { |
| description | | description |
| "Import Route Target"; | | "Import Route Target"; |
| container two-byte-as-rts { | | container two-byte-as-rts { |
| description | | description |
| "Two Byte AS Number Route Target"; | | "Two Byte AS Number Route Target"; |
| list two-byte-as-rt { | | list two-byte-as-rt { |
| key "two-byte-as-number assigned-number"; | | key "two-byte-as-number assigned-number"; |
| description | | description |
| "Two Byte AS Number Route Target"; | | "Two Byte AS Number Route Target"; |
| leaf two-byte-as-number { | | leaf two-byte-as-number { |
| type uint32 { | | type uint32 { |
| range "1..65535"; | | range "1..65535"; |
| } | | } |
| description | | description |
| "Two Byte AS Number"; | | "Two Byte AS Number"; |
| } | | } |
| leaf assigned-number { | | leaf assigned-number { |
| type uint32 { | | type uint32 { |
| range "0..4294967295" { | | range "0..4294967295" { |
| description | | description |
| "AS:nn (hex or decimal format)"; | | "AS:nn (hex or decimal format)"; |
| } | | } |
| } | | } |
| description | | description |
| "AS:nn (hex or decimal format)"; | | "AS:nn (hex or decimal format)"; |
| } | | } |
| } | | } |
| } | | } |
| container four-byte-as-rts { | | container four-byte-as-rts { |
| description | | description |
| "Four Byte AS number Route Target"; | | "Four Byte AS number Route Target"; |
| list four-byte-as-rt { | | list four-byte-as-rt { |
| key "four-byte-as-number assigned-number"; | | key "four-byte-as-number assigned-number"; |
| description | | description |
| "Four Byte AS number Route Target"; | | "Four Byte AS number Route Target"; |
| leaf four-byte-as-number { | | leaf four-byte-as-number { |
| type uint32 { | | type uint32 { |
| range "65536..4294967295"; | | range "65536..4294967295"; |
| } | | } |
| description | | description |
| "Four Byte AS number"; | | "Four Byte AS number"; |
| } | | } |
| leaf assigned-number { | | leaf assigned-number { |
| type uint32 { | | type uint32 { |
| range "0..65535" { | | range "0..65535" { |
| description | | description |
| "AS:nn (hex or decimal format)"; | | "AS:nn (hex or decimal format)"; |
| } | | } |
| } | | } |
| description | | description |
| "AS:nn (hex or decimal format)"; | | "AS:nn (hex or decimal format)"; |
| } | | } |
| } | | } |
| } | | } |
| container ipv4-address-rts { | | container ipv4-address-rts { |
| description | | description |
| "IP address Route Target"; | | "IP address Route Target"; |
| list ipv4-address-rt { | | list ipv4-address-rt { |
| key "ipv4-address assigned-number"; | | key "ipv4-address assigned-number"; |
| description | | description |
| "IP address"; | | "IP address"; |
| leaf ipv4-address { | | leaf ipv4-address { |
| type inet:ipv4-address-no-zone; | | type inet:ipv4-address-no-zone; |
| description | | description |
| "IP address"; | | "IP address"; |
| } | | } |
| leaf assigned-number { | | leaf assigned-number { |
| type uint32 { | | type uint32 { |
| range "0..65535" { | | range "0..65535" { |
| description | | description |
| "IP-address:nn (hex or decimal format)"; | | "IP-address:nn (hex or decimal format)"; |
| } | | } |
| } | | } |
| description | | description |
| "IP-address:nn (hex or decimal format)"; | | "IP-address:nn (hex or decimal format)"; |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| container export { | | container export { |
| description | | description |
| "Export Route Target"; | | "Export Route Target"; |
| container two-byte-as-rts { | | container two-byte-as-rts { |
| description | | description |
| "Two Byte AS Number Route Target"; | | "Two Byte AS Number Route Target"; |
| list two-byte-as-rt { | | list two-byte-as-rt { |
| key "two-byte-as-number assigned-number"; | | key "two-byte-as-number assigned-number"; |
| description | | description |
| "Two Byte AS Number Route Target"; | | "Two Byte AS Number Route Target"; |
| leaf two-byte-as-number { | | leaf two-byte-as-number { |
| type uint32 { | | type uint32 { |
| range "1..65535"; | | range "1..65535"; |
| } | | } |
| description | | description |
| "Two Byte AS Number"; | | "Two Byte AS Number"; |
| } | | } |
| leaf assigned-number { | | leaf assigned-number { |
| type uint32 { | | type uint32 { |
| range "0..4294967295" { | | range "0..4294967295" { |
| description | | description |
| "AS:nn (hex or decimal format)"; | | "AS:nn (hex or decimal format)"; |
| } | | } |
| } | | } |
| description | | description |
| "AS:nn (hex or decimal format)"; | | "AS:nn (hex or decimal format)"; |
| } | | } |
| } | | } |
| } | | } |
| container four-byte-as-rts { | | container four-byte-as-rts { |
| description | | description |
| "Four Byte AS number Route Target"; | | "Four Byte AS number Route Target"; |
| list four-byte-as-rt { | | list four-byte-as-rt { |
| key "four-byte-as-number assigned-number"; | | key "four-byte-as-number assigned-number"; |
| description | | description |
| "Four Byte AS number Route Target"; | | "Four Byte AS number Route Target"; |
| leaf four-byte-as-number { | | leaf four-byte-as-number { |
| type uint32 { | | type uint32 { |
| range "65536..4294967295"; | | range "65536..4294967295"; |
| } | | } |
| description | | description |
| "Four Byte AS number"; | | "Four Byte AS number"; |
| } | | } |
| leaf assigned-number { | | leaf assigned-number { |
| type uint32 { | | type uint32 { |
| range "0..65535" { | | range "0..65535" { |
| description | | description |
| "AS:nn (hex or decimal format)"; | | "AS:nn (hex or decimal format)"; |
| } | | } |
| } | | } |
| description | | description |
| "AS:nn (hex or decimal format)"; | | "AS:nn (hex or decimal format)"; |
| } | | } |
| } | | } |
| } | | } |
| container ipv4-address-rts { | | container ipv4-address-rts { |
| description | | description |
| "IP address Route Target"; | | "IP address Route Target"; |
| list ipv4-address-rt { | | list ipv4-address-rt { |
| key "ipv4-address assigned-number"; | | key "ipv4-address assigned-number"; |
| description | | description |
| "IP address"; | | "IP address"; |
| leaf ipv4-address { | | leaf ipv4-address { |
| type inet:ipv4-address-no-zone; | | type inet:ipv4-address-no-zone; |
| description | | description |
| "IP address"; | | "IP address"; |
| } | | } |
| leaf assigned-number { | | leaf assigned-number { |
| type uint32 { | | type uint32 { |
| range "0..65535" { | | range "0..65535" { |
| description | | description |
| "IP-address:nn (hex or decimal format)"; | | "IP-address:nn (hex or decimal format)"; |
| } | | } |
| } | | } |
| description | | description |
| "IP-address:nn (hex or decimal format)"; | | "IP-address:nn (hex or decimal format)"; |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| container two-byte-as-rts { | | container two-byte-as-rts { |
| description | | description |
| "Two Byte AS Number Route Target"; | | "Two Byte AS Number Route Target"; |
| list two-byte-as-rt { | | list two-byte-as-rt { |
| key "two-byte-as-number assigned-number"; | | key "two-byte-as-number assigned-number"; |
| description | | description |
| "Two Byte AS Number Route Target"; | | "Two Byte AS Number Route Target"; |
| leaf two-byte-as-number { | | leaf two-byte-as-number { |
| type uint32 { | | type uint32 { |
| range "1..65535"; | | range "1..65535"; |
| } | | } |
| description | | description |
| "Two Byte AS Number"; | | "Two Byte AS Number"; |
| } | | } |
| leaf assigned-number { | | leaf assigned-number { |
| type uint32 { | | type uint32 { |
| range "0..4294967295" { | | range "0..4294967295" { |
| description | | description |
| "AS:nn (hex or decimal format)"; | | "AS:nn (hex or decimal format)"; |
| } | | } |
| } | | } |
| description | | description |
| "AS:nn (hex or decimal format)"; | | "AS:nn (hex or decimal format)"; |
| } | | } |
| } | | } |
| } | | } |
| container four-byte-as-rts { | | container four-byte-as-rts { |
| description | | description |
| "Four Byte AS number Route Target"; | | "Four Byte AS number Route Target"; |
| list four-byte-as-rt { | | list four-byte-as-rt { |
| key "four-byte-as-number assigned-number"; | | key "four-byte-as-number assigned-number"; |
| description | | description |
| "Four Byte AS number Route Target"; | | "Four Byte AS number Route Target"; |
| leaf four-byte-as-number { | | leaf four-byte-as-number { |
| type uint32 { | | type uint32 { |
| range "65536..4294967295"; | | range "65536..4294967295"; |
| } | | } |
| description | | description |
| "Four Byte AS number"; | | "Four Byte AS number"; |
| } | | } |
| leaf assigned-number { | | leaf assigned-number { |
| type uint32 { | | type uint32 { |
| range "0..65535" { | | range "0..65535" { |
| description | | description |
| "AS:nn (hex or decimal format)"; | | "AS:nn (hex or decimal format)"; |
| } | | } |
| } | | } |
| description | | description |
| "AS:nn (hex or decimal format)"; | | "AS:nn (hex or decimal format)"; |
| } | | } |
| } | | } |
| } | | } |
| container ipv4-address-rts { | | container ipv4-address-rts { |
| description | | description |
| "IP address Route Target"; | | "IP address Route Target"; |
| list ipv4-address-rt { | | list ipv4-address-rt { |
| key "ipv4-address assigned-number"; | | key "ipv4-address assigned-number"; |
| description | | description |
| "IP address"; | | "IP address"; |
| leaf ipv4-address { | | leaf ipv4-address { |
| type inet:ipv4-address-no-zone; | | type inet:ipv4-address-no-zone; |
| description | | description |
| "IP address"; | | "IP address"; |
| } | | } |
| leaf assigned-number { | | leaf assigned-number { |
| type uint32 { | | type uint32 { |
| range "0..65535" { | | range "0..65535" { |
| description | | description |
| "IP-address:nn (hex or decimal format)"; | | "IP-address:nn (hex or decimal format)"; |
| } | | } |
| } | | } |
| description | | description |
| "IP-address:nn (hex or decimal format)"; | | "IP-address:nn (hex or decimal format)"; |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| container signaling-protocol { | | container signaling-protocol { |
| description | | description |
| "Enable signaling protocol in this MP2MP"; | | "Enable signaling protocol in this MP2MP"; |
| container bgp { | | container bgp { |
| presence "Indicates a bgp node is configured."; | | presence "Indicates a bgp node is configured."; |
| description | | description |
| "Enable BGP signaling protocol this MP2MP"; | | "Enable BGP signaling protocol this MP2MP"; |
| list ce-id { | | list ce-id { |
| key "local-ce-id-value"; | | key "local-ce-id-value"; |
| description | | description |
| "Local Customer Edge Identifier (CE ID)"; | | "Local Customer Edge Identifier (CE ID)"; |
| leaf local-ce-id-value { | | leaf local-ce-id-value { |
| type uint32 { | | type uint32 { |
| range "1..16384" { | | range "1..16384" { |
| description | | description |
| "Value of the local CE ID"; | | "Value of the local CE ID"; |
| } | | } |
| } | | } |
| description | | description |
| "Local Customer Edge Identifier (CE ID)"; | | "Local Customer Edge Identifier (CE ID)"; |
| } | | } |
| list interface { | | list interface { |
| must "remote-ce-id"; | | must "remote-ce-id"; |
| key "interface-name"; | | key "interface-name"; |
| description | | description |
| "Specify the attachment circuit"; | | "Specify the attachment circuit"; |
| leaf interface-name { | | leaf interface-name { |
| type xr:Interface-name; | | type xr:Interface-name; |
| description | | description |
| "Specify the attachment circuit"; | | "Specify the attachment circuit"; |
| } | | } |
| list remote-ce-id { | | list remote-ce-id { |
| key "remote-ce-id-value"; | | key "remote-ce-id-value"; |
| description | | description |
| "Remote Customer Edge Identifier"; | | "Remote Customer Edge Identifier"; |
| leaf remote-ce-id-value { | | leaf remote-ce-id-value { |
| type uint32 { | | type uint32 { |
| range "1..16384" { | | range "1..16384" { |
| description | | description |
| "Value of the remote CE ID"; | | "Value of the remote CE ID"; |
| } | | } |
| } | | } |
| description | | description |
| "Remote Customer Edge Identifier"; | | "Remote Customer Edge Identifier"; |
| } | | } |
| } | | } |
| } | | } |
| container vpws-seamless-integration { | | container vpws-seamless-integration { |
| presence "Indicates a vpws-seamless-integration node is configured."; | | presence "Indicates a vpws-seamless-integration node is configured."; |
| description | | description |
| "EVPN-VPWS Seamless Integration with BGP-AD VPWS"; | | "EVPN-VPWS Seamless Integration with BGP-AD VPWS"; |
| } | | } |
| } | | } |
| leaf ce-range { | | leaf ce-range { |
| if-feature "l2vpn_is_cli_supported"; | | if-feature "l2vpn_is_cli_supported"; |
| type uint32 { | | type uint32 { |
| range "11..100" { | | range "11..100" { |
| description | | description |
| "Value of the CE Range"; | | "Value of the CE Range"; |
| } | | } |
| } | | } |
| description | | description |
| "Local Customer Edge Block Configurable Range"; | | "Local Customer Edge Block Configurable Range"; |
| } | | } |
| container load-balancing { | | container load-balancing { |
| description | | description |
| "Load Balancing"; | | "Load Balancing"; |
| container flow-label { | | container flow-label { |
| description | | description |
| "Flow label based load balancing setting"; | | "Flow label based load balancing setting"; |
| container transmit { | | container transmit { |
| must "not(../receive or ../both)"; | | must "not(../receive or ../both)"; |
| presence "Indicates a transmit node is configured."; | | presence "Indicates a transmit node is configured."; |
| description | | description |
| "Insert Flow label when transmit "; | | "Insert Flow label when transmit "; |
| } | | } |
| container receive { | | container receive { |
| must "not(../transmit or ../both)"; | | must "not(../transmit or ../both)"; |
| presence "Indicates a receive node is configured."; | | presence "Indicates a receive node is configured."; |
| description | | description |
| "Discard Flow label when receive"; | | "Discard Flow label when receive"; |
| } | | } |
| container both { | | container both { |
| must "not(../transmit or ../receive)"; | | must "not(../transmit or ../receive)"; |
| presence "Indicates a both node is configured."; | | presence "Indicates a both node is configured."; |
| description | | description |
| "Insert/Discard Flow label when transmit/recceive"; | | "Insert/Discard Flow label when transmit/recceive"; |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| container route-policy { | | container route-policy { |
| description | | description |
| "Apply route policy"; | | "Apply route policy"; |
| leaf export { | | leaf export { |
| type xr:Route-policy-name; | | type xr:Route-policy-name; |
| description | | description |
| "Export route policy"; | | "Export route policy"; |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| container logging { | | container logging { |
| description | | description |
| "Configure l2vpn logging commands"; | | "Configure l2vpn logging commands"; |
| container pseudowire { | | container pseudowire { |
| presence "Indicates a pseudowire node is configured."; | | presence "Indicates a pseudowire node is configured."; |
| description | | description |
| "Enable pseudowire logging"; | | "Enable pseudowire logging"; |
| } | | } |
| container bridge-domain { | | container bridge-domain { |
| presence "Indicates a bridge-domain node is configured."; | | presence "Indicates a bridge-domain node is configured."; |
| description | | description |
| "Enable bridge-domain logging"; | | "Enable bridge-domain logging"; |
| } | | } |
| container vfi { | | container vfi { |
| presence "Indicates a vfi node is configured."; | | presence "Indicates a vfi node is configured."; |
| description | | description |
| "Enable VFI logging"; | | "Enable VFI logging"; |
| } | | } |
| container nsr { | | container nsr { |
| presence "Indicates a nsr node is configured."; | | presence "Indicates a nsr node is configured."; |
| description | | description |
| "Enable Non-Stop Routing logging"; | | "Enable Non-Stop Routing logging"; |
| } | | } |
| container pwhe-replication { | | container pwhe-replication { |
| description | | description |
| "PWHE replication failure/success logging"; | | "PWHE replication failure/success logging"; |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "disable PWHE replication failure/success logging"; | | "disable PWHE replication failure/success logging"; |
| } | | } |
| } | | } |
| } | | } |
| container autodiscovery { | | container autodiscovery { |
| description | | description |
| "Configure global auto-discovery attributes"; | | "Configure global auto-discovery attributes"; |
| container bgp { | | container bgp { |
| description | | description |
| "auto discovery type bgp"; | | "auto discovery type bgp"; |
| container signaling-protocol { | | container signaling-protocol { |
| description | | description |
| "Configure global signaling protocol attributes"; | | "Configure global signaling protocol attributes"; |
| container bgp { | | container bgp { |
| description | | description |
| "signaling protocol type bgp"; | | "signaling protocol type bgp"; |
| container mtu { | | container mtu { |
| description | | description |
| "mtu"; | | "mtu"; |
| container mismatch { | | container mismatch { |
| description | | description |
| "mtu mismatch"; | | "mtu mismatch"; |
| container ignore { | | container ignore { |
| presence "Indicates a ignore node is configured."; | | presence "Indicates a ignore node is configured."; |
| description | | description |
| "Ignore MTU mismatch for auto-discovered PWs"; | | "Ignore MTU mismatch for auto-discovered PWs"; |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| container pw-routing { | | container pw-routing { |
| description | | description |
| "Configure Pseudowire routing attributes"; | | "Configure Pseudowire routing attributes"; |
| leaf global-id { | | leaf global-id { |
| type uint32 { | | type uint32 { |
| range "1..4294967295" { | | range "1..4294967295" { |
| description | | description |
| "Global ID"; | | "Global ID"; |
| } | | } |
| } | | } |
| description | | description |
| "Configure l2vpn pseudowire routing global id"; | | "Configure l2vpn pseudowire routing global id"; |
| } | | } |
| container bgp { | | container bgp { |
| presence "Indicates a bgp node is configured."; | | presence "Indicates a bgp node is configured."; |
| description | | description |
| "Configure BGP"; | | "Configure BGP"; |
| container rd { | | container rd { |
| description | | description |
| "Set the Route Distinguisher"; | | "Set the Route Distinguisher"; |
| leaf two-byte-as-number { | | leaf two-byte-as-number { |
| type uint32 { | | type uint32 { |
| range "1..65535" { | | range "1..65535" { |
| description | | description |
| "Two Byte AS Number"; | | "Two Byte AS Number"; |
| } | | } |
| } | | } |
| n | must "not(../four-byte-as-number or ../ipv4-address) and ../two-byte-as-assigned-number"; | n | must "not(../four-byte-as-number or ../ipv4-address)"; |
| description | | description |
| "Two Byte AS Number"; | | "Two Byte AS Number"; |
| } | | } |
| leaf two-byte-as-assigned-number { | | leaf two-byte-as-assigned-number { |
| type uint32 { | | type uint32 { |
| range "0..4294967295" { | | range "0..4294967295" { |
| description | | description |
| "AS:nn (hex or decimal format)"; | | "AS:nn (hex or decimal format)"; |
| } | | } |
| } | | } |
| must "../two-byte-as-number"; | | must "../two-byte-as-number"; |
| description | | description |
| "AS:nn (hex or decimal format)"; | | "AS:nn (hex or decimal format)"; |
| } | | } |
| leaf four-byte-as-number { | | leaf four-byte-as-number { |
| type uint32 { | | type uint32 { |
| range "65536..4294967295" { | | range "65536..4294967295" { |
| description | | description |
| "Four Byte AS number"; | | "Four Byte AS number"; |
| } | | } |
| } | | } |
| n | must "not(../two-byte-as-number or ../ipv4-address) and ../four-byte-as-assigned-number"; | n | must "not(../two-byte-as-number or ../ipv4-address)"; |
| description | | description |
| "Four Byte AS number"; | | "Four Byte AS number"; |
| } | | } |
| leaf four-byte-as-assigned-number { | | leaf four-byte-as-assigned-number { |
| type uint32 { | | type uint32 { |
| range "0..65535" { | | range "0..65535" { |
| description | | description |
| "AS:nn (hex or decimal format)"; | | "AS:nn (hex or decimal format)"; |
| } | | } |
| } | | } |
| must "../four-byte-as-number"; | | must "../four-byte-as-number"; |
| description | | description |
| "AS:nn (hex or decimal format)"; | | "AS:nn (hex or decimal format)"; |
| } | | } |
| leaf ipv4-address { | | leaf ipv4-address { |
| type inet:ipv4-address-no-zone; | | type inet:ipv4-address-no-zone; |
| t | must "not(../two-byte-as-number or ../four-byte-as-number) and ../ipv4-address-assigned-number"; | t | must "not(../two-byte-as-number or ../four-byte-as-number)"; |
| description | | description |
| "IP address"; | | "IP address"; |
| } | | } |
| leaf ipv4-address-assigned-number { | | leaf ipv4-address-assigned-number { |
| type uint32 { | | type uint32 { |
| range "0..65535" { | | range "0..65535" { |
| description | | description |
| "IP-address:nn (hex or decimal format)"; | | "IP-address:nn (hex or decimal format)"; |
| } | | } |
| } | | } |
| must "../ipv4-address"; | | must "../ipv4-address"; |
| description | | description |
| "IP-address:nn (hex or decimal format)"; | | "IP-address:nn (hex or decimal format)"; |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| container snmp { | | container snmp { |
| description | | description |
| "Set SNMP related configuration"; | | "Set SNMP related configuration"; |
| container mib { | | container mib { |
| description | | description |
| "Set MIB related configuration"; | | "Set MIB related configuration"; |
| container interface { | | container interface { |
| description | | description |
| "Set MIB interface related configuration"; | | "Set MIB interface related configuration"; |
| container format { | | container format { |
| description | | description |
| "Set MIB interface name output format"; | | "Set MIB interface name output format"; |
| container external { | | container external { |
| presence "Indicates a external node is configured."; | | presence "Indicates a external node is configured."; |
| description | | description |
| "Set MIB interface name output format to external using slash"; | | "Set MIB interface name output format to external using slash"; |
| } | | } |
| } | | } |
| } | | } |
| container pseudowire { | | container pseudowire { |
| description | | description |
| "Set MIB pseudowire related configuration"; | | "Set MIB pseudowire related configuration"; |
| container statistics { | | container statistics { |
| presence "Indicates a statistics node is configured."; | | presence "Indicates a statistics node is configured."; |
| description | | description |
| "Enable MIB pseudowire statistics (for low scale, <16K PWs)"; | | "Enable MIB pseudowire statistics (for low scale, <16K PWs)"; |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| } | | } |